1つはSchema
を定義します そのため、アプリケーションは、MongoDBからJavaScriptオブジェクトにデータをマッピングする方法を理解しています。 Schema
アプリケーションの一部です。 何もありません データベースと関係があります。データベースをJavaScriptオブジェクトにマップするだけです。そうです-素晴らしいマッピングが必要な場合は、このコードをすべてで実行する必要があります それを必要とするアプリケーション。ゲッター/セッター/検証などにも適用されます。
ただし、これを行うことに注意してください:
var mongoose = require('mongoose');
var Schema = mongoose.Schema; // <-- EDIT: missing in the original post
var Comments = new Schema({
title : String
, body : String
, date : Date
});
mongoose.model("Comments", Comments);
Schema
を登録します グローバルに。つまり、実行しているアプリケーションが外部モジュールを使用している場合、このモジュールでは単純に使用できます
var mongoose = require('mongoose');
var Comments = mongoose.model("Comments");
Comments.find(function(err, comments) {
// some code here
});
(実際にはSchema
を登録する必要があることに注意してください このコードを使用する前に、そうでない場合は例外がスローされます。
ただし、これはすべて1つのノードセッション内でのみ機能するため、Schema
へのアクセスが必要な別のノードアプリを実行している場合 、次に登録コードを呼び出す必要があります。したがって、すべてのスキーマを個別のファイル(comments.js
など)で定義することをお勧めします。 このように見えるかもしれません
var mongoose = require('mongoose');
var Schema = mongoose.Schema; // <-- EDIT: missing in the original post
module.exports = function() {
var Comments = new Schema({
title : String
, body : String
, date : Date
});
mongoose.model("Comments", Comments);
};
次に、ファイルmodels.js
を作成します このように見えるかもしれません
var models = ['comments.js', 'someothermodel.js', ...];
exports.initialize = function() {
var l = models.length;
for (var i = 0; i < l; i++) {
require(models[i])();
}
};
ここで、require('models.js').initialize();
を呼び出します。 特定のノードセッションのすべてのスキーマを初期化します。