我很困惑cb();工作中?它做了什么?
beforeCreate: function(user, cb) {
bcrypt.genSalt(10, function(err, salt) {
bcrypt.hash(user.password, salt, function(err, hash) {
if (err) {
console.log(err);
cb(err);
} else {
user.password = hash;
cb();
}
});
});
}
答案 0 :(得分:2)
假设我理解了您的问题,您可能不理解的是cb
未在您的示例中定义 - 它是对将作为传递的内容传达的内容的引用参数beforeCreate
。
假设你有上面的代码,那么你可以在某个时候调用beforeCreate
并传入一个将在里面使用的方法(回调) - 就像这样
beforeCreate({name:"Joe"}, /* user */
function(err){ /* callback */
if(err) return console.log("beforeCreate callback has been called with error" + err); /* check if there is error and return from function */
console.log("beforeCreate called successful") /* otherwise called succesfull */
}
)
那么...那里的匿名函数(在/ 回调 / comment之后是你将{作为参考)传递给beforeCreate
的回调以及什么你*做它的定义是IN beforeCreate
(在你的例子上面)。