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;

我还面临来自第二种解决方案的问题,假设我想向 my 添加汽车列表userSchema,并且汽车模式在另一个文件car.js中定义,那么这意味着我必须carSchema为我的用户公开.js文件,对吗?这意味着我实际上取消了我上面提供的第二种解决方案,那么,做这种事情的正确方法是什么?

4

1 回答 1

5

有趣的问题。

这可能只是一个“语法糖”的东西,但我坚持使用第二个变体,因为恕我直言,不需要封装一代等。猫鼬是这些东西的包装,然后可以使用纯猫鼬模型和模式。这对你来说听起来合理吗?

exports.User = User;
于 2014-01-09T13:06:18.690 回答