Mongoose无法识别.all()promise函数?

时间:2017-06-09 21:07:59

标签: javascript arrays mongoose promise

我正在尝试使用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");
      });
  }
}

过去几个小时里,我一直在靠墙打我的头。我似乎无法弄清楚这一点

0 个答案:

没有答案