对于MEAN堆栈,我正在学习Mongoose的save()函数,它接受回调。它的API states:
Model#save([options], [fn])
Saves this document.
Parameters:
[options] <Object> options set `options.safe` to override [schema's safe option](http://mongoosejs.com//docs/guide.html#safe)
[fn] <Function> optional callback
我如何知道可选回调中的参数? API仅举例说明:
product.sold = Date.now();
product.save(function (err, product, numAffected) {
if (err) ..
})
The callback will receive three parameters
err if an error occurred
product which is the saved product
numAffected will be 1 when the document was successfully persisted to MongoDB, otherwise 0.
我认为API应该对可选回调说明如下:
[fn] <Function> optional callback with this structure:
function(err, theDocumentToBeSaved, [isSaveSuccessful])
它可以像下面这样使用。 请注意,第二个参数即文档必须与调用保存的文档相同。(如果不是这样,请告诉我。)
documentFoo.save(function(err, documentFoo, [isSaveSuccessful]){
if(err){ return next(err); }
if (isSaveSuccessful === 1){
// documentFoo has been saved correctly
// do stuff with the saved documentFoo
}
}
如果我的解释是正确的,那么应该始终如何构建保存回调参数吗?
答案 0 :(得分:26)
save
函数的回调将接受三个参数:
参数列于here
请注意,第二个参数(文档)必须与调用save
的文档相同
您可以根据需要为参数命名,但不是将其强制转换为对象或类似的东西。它只是一个名称,您希望在其函数体中引用它。