findById 和 load 之间的区别?
Differences betwen findById and load?
FindById(id,callBack)
和 Load(id,callback)
之间的主要区别是什么?
更多详情:
我是 MEAN 堆栈 Web 开发的新手,所以我只是在玩 Mean.io:
此代码由Mean.io(controllers/article.js):
生成
Article.load(id, function(err, article) {
if (err) return next(err);
if (!article) return next(new Error('Failed to load article ' + id));
req.article = article;
next();
});
只是我想使用 findById 得到相同的结果,它在以下位置有详细记录:Model.findById
Article.findById(id, function (err, article){
if (err) return next(err);
if (!article) return next(new Error('Failed to load article ' + id));
req.article = article;
next();
});
它有效,但我想知道它们之间的主要区别,奇怪的是我在 mongoose 文档上找不到任何文档。
load
是 Article 模型的静态方法,它做的事情和 findOne
完全一样,是 defined in the schema 如下:
ArticleSchema.statics = {
load: function (id, cb) {
this.findOne({ _id : id }).populate('user').exec(cb);
}
};
由此 findById
方法也调用 findOne
方法:
Model.findById = function findById (id, fields, options, callback) {
return this.findOne({ _id: id }, fields, options, callback);
};
FindById(id,callBack)
和 Load(id,callback)
之间的主要区别是什么?
更多详情:
我是 MEAN 堆栈 Web 开发的新手,所以我只是在玩 Mean.io:
此代码由Mean.io(controllers/article.js):
生成Article.load(id, function(err, article) {
if (err) return next(err);
if (!article) return next(new Error('Failed to load article ' + id));
req.article = article;
next();
});
只是我想使用 findById 得到相同的结果,它在以下位置有详细记录:Model.findById
Article.findById(id, function (err, article){
if (err) return next(err);
if (!article) return next(new Error('Failed to load article ' + id));
req.article = article;
next();
});
它有效,但我想知道它们之间的主要区别,奇怪的是我在 mongoose 文档上找不到任何文档。
load
是 Article 模型的静态方法,它做的事情和 findOne
完全一样,是 defined in the schema 如下:
ArticleSchema.statics = {
load: function (id, cb) {
this.findOne({ _id : id }).populate('user').exec(cb);
}
};
由此 findById
方法也调用 findOne
方法:
Model.findById = function findById (id, fields, options, callback) {
return this.findOne({ _id: id }, fields, options, callback);
};