0

私は現在、小さな個人用マルチプレイヤー ゲーム プロジェクトに取り組んでいます。Express.js、mongoose、およびsocket.ioとともにnode.jsを使用しています。JavaScript を使用した初めてのプロジェクトで、C/C++ のバックグラウンドを持っています。

問題は次のとおりです: ある種の一般的な要求が可能かどうか: 現在、プロジェクト ルートにモデル フォルダーがあり、すべてのマングース モデルがそこにあります。それらはすべて次のように見えます。

function make(Schema, mongoose) {
var UserSchema = new Schema({
    name      : String
  , passwd    : String
  , is_online : Boolean
  , socket_id : Number
});
mongoose.model('User', UserSchema);
}
module.exports.make = make;

私の記憶が正しければ、このアプローチはスタックオーバーフローのどこかで見つけました。node.js アプリケーションを開始するときは、データベースに接続してから、すべての make 関数を呼び出す必要があります。

それを行う一般的な方法はありますか?

次のように考えてください(疑似コード):

models = require('./models/');
for each m in models do
{
     m.make(Schema, mongoose);
}
4

1 に答える 1

1

私は少し違うことをします:

var UserSchema = new Schema({
    name      : String
  , passwd    : String
  , is_online : Boolean
  , socket_id : Number
});
module.exports = mongoose.model('User', UserSchema);

これで、モデルを要求して、次のようにすぐに使用できます。

var userModel = require('models/user');
userModel.find()//...
于 2012-06-16T18:02:29.093 に答える