我正在尝试使用promises来处理mongoose对mongodb数据库的异步查询。
我需要针对单个项目进行验证,然后针对mongodb中存在的项目数组进行验证。
我已经尝试过回调,async / await,现在我正在尝试承诺。但我似乎无法让事情发挥作用。
我需要确保只有在另一个完成后才会发生一件事。我还必须构建一个在数据库中存在和不存在的项目列表,并将其传递给下一个承诺。
然而,似乎malloose不接受.all(),因为我收到以下错误:
TypeError: validateInputClass(...).then(...).all is not a function
我目前使用的路径是:
app.route('/users/enroll/:classId').put(todoList.enroll_in_class);
我传递的身体是:
{ "users":["lorem","ipsum"] }
这是我使用的代码的实现,这给我一个错误,说.all()不是函数
function validateInputClass(inputclassId){
return Class.findOne({ classId: inputclassId}, function(err, classs) {
if(err){
throw err;
}
});
}
exports.enroll_in_class = function(req, res){
var userLogArray = req.body.users.map(function(user){
new Promise((user) => {console.log(user)});
})
if(req.body.users.length > 0){
validateInputClass(req.params.classId)
.then((response) => {
if(response){
return response;
} else {
res.json({"message":"Class does not exist"})
}
}).all((userLogArray => {
console.log("Done");
});
}
}
过去几个小时里,我一直在靠墙打我的头。我似乎无法弄清楚这一点