models/mymodel.js
ファイルにSchema
さんを作成しました。私はそこに私のモデルだけでなく、私の方法を持っています。ExpressプロジェクトでMongooseを正しく配置するにはどうすればよいですか?
routes
にエクスポートするにはどうすればよいですか?
models/mymodel.js
ファイルにSchema
さんを作成しました。私はそこに私のモデルだけでなく、私の方法を持っています。ExpressプロジェクトでMongooseを正しく配置するにはどうすればよいですか?
routes
にエクスポートするにはどうすればよいですか?
// route.js
var mongoose = require("mongoose");
var Posts = mongoose.model("posts")
...
すべてのモデルファイルを実行するブートストラップメカニズムを設定するようにしてください。それが完了したら、一連のモデルに対してmongoose.model("name", Model)
を呼び出す必要があります。
これは、これらのモデルを内部的にマングースにキャッシュしています。だからどこでも好きな場所にmongoose.model("name")
と呼ぶことができます。
重要なのは実行順序だけです。モデル&は、ルートを実行する前に登録する必要があります。
これは同じくらい簡単通りである:あなたのサーバーを聞く前に、マングースが作成する通常readdirSync
は悪であるが、それは起動時間(のようなrequire
)で呼び出しをブロックする実行するために大丈夫だ
// create app
var app = express.createServer(...);
// do stuff with app
var files = fs.readdirSync("models");
files.forEach(function(file) {
require("models/" + file);
});
var routes = fs.readdirSync("routes");
routes.forEach(function(route) {
require("routes/" + route)(app);
});
app.listen(80);
注
シングルトンがrequire()
の場合、それ以降の呼び出しは同じインスタンスを返します。
あなたのアプリが入ったときにマングースが必要な場合は、あなたのモデルを定義して、Raynosの説明どおりのマングースが必要な他のファイルで利用できます。
dbサーバーへの接続を手動で管理しない限り、mongoose.connect('...')
をアプリのinitで呼び出すこともお勧めします。接続は要求を超えて存続します。
これに 'Schema'はどのように適合しますか? – Shamoon
'fs.readdirSync()'をうまく使います。 @Samoon、 'mongoose.model(" name "、Model)'の上のサンプルコードでは、ModelはSchemaのインスタンスでなければなりません。 –