3

大まかに次のように、すべてのマングース スキーマとメソッドを含む user.js ファイルがあります

var userSchema = mongoose.Schema({
  name: { type: String, required: true, trim: true },
  surname: { type: String, required: true },
});

var User = mongoose.model('User', userSchema);

さて、データをモデル化する関数を公開するのが最善でしょうか? このような:

exports.addUser = function(data, next){
  user = new User(data);
  user.save(next);
};

exports.getAll = function(next){
  var query = User.find();
  query.exec(next);
};

Userまたは、このように他の場所で使用されるオブジェクトだけを公開しますか?

module.exports = User; //or
exports.User = User;

また、2 番目の解決策から派生した問題に直面しています。車のリストを my に追加したいとしuserSchemaます。車のスキーマは別のファイルcar.jscarSchemaで定義されているとします。これは、ユーザーに を公開する必要があることを意味します。 .jsファイルですよね?これは、私が上記で提供した 2 番目の解決策を実際に無効にしていることを意味します。では、この種のことを行う正しい方法は何ですか?

4

1 に答える 1

5

興味深い質問です。

これはおそらく「シンタックス シュガー」に過ぎませんが、世代などをカプセル化する必要がないため、2 番目のバリアントに固執しています。マングースはそのようなもののラッパーであり、純粋なマングース モデルとスキーマを使用できます。これはあなたにとって合理的に聞こえますか?

exports.User = User;
于 2014-01-09T13:06:18.690 に答える