我有一个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;
我还面临着第二种解决方案带来的问题,假设我想向我添加userSchema
car列表,并且car模式在另一个文件car.js中定义,那么这意味着我必须carSchema
为用户公开.js文件,对不对?这意味着我实际上要取消上面提供的第二个解决方案,那么做这种事情的正确方法是什么?
有趣的问题。
这可能只是“语法糖”,但我坚持使用第二个变体,因为恕我直言,无需封装生成等。猫鼬是此类东西的包装,然后可以使用纯猫鼬模型和模式。对您来说听起来合理吗?
exports.User = User;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句