如何在回调之外访问mongoose验证错误

时间:2018-02-04 19:55:05

标签: node.js mongodb express mongoose error-handling

我有一个index > routes > endpoints > core结构的网站,其中端点处理请求和响应,并使用核心模块进行数据库交互。
现在,核心模块的查找功能如下所示:

function findUser(data){
   return User.findOne(data)
}

从那里,我的端点能够在没有回调的情况下处理查询数据。但是,我有一个createUser操作,当用户名不唯一时,它会使用模式级身份验证来返回错误。我不确定如何从核心模块函数返回错误。

function createUser(data){
   var user = new User(data);
   if(//error validation here){
      return //however to return error
   }else{
      user.save();
      return "Success!"
   }
}

1 个答案:

答案 0 :(得分:0)

而不是

var user = new User(data);

你可以实际使用

function createUser(data){
    return User.create(data);
}

这样createUser函数就像findUser函数一样返回promise。 User.create函数会自动调用save()

所以你可以像

一样使用它
createUser(userdata)
    .then(...)
    .catch(...);