我有像这样的nodejs导出
exports.add = function(req){
var newUser = new User({
email: req.body.email,
password: req.body.password,
});
// Attempt to save the user
newUser.save(function(err) {
if (err) {
return true;
}
return false;
});
}
但当我像这样调用函数时,它给出了未定义的
var value = instance.add(req);
此实例是导入的javascript文件实例
答案 0 :(得分:0)
如@Ben Fortune的评论所述,你不能简单地从异步函数调用中返回一个值。您应该使用回调或承诺:
回调方式:
exports.add = function (req, callback) {
var newUser = new User({
email: req.body.email,
password: req.body.password,
});
// Attempt to save the user
newUser.save(function(err) {
if (err) {
callback(err, null);
}
callback(null, newUser.toJSON()) ;
});
}
然后:
instance.add(req, function(err, value) {
if (err) throw err;
// use value here
});
阅读更多:How do I return the response from an asynchronous call?如果您愿意,可以实施承诺方式。