【问题标题】:How to access mongoose validation error outside of callbacks如何在回调之外访问猫鼬验证错误
【发布时间】:2018-02-04 19:55:04
【问题描述】:

我有一个具有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!"
   }
}

【问题讨论】:

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


    【解决方案1】:

    代替

    var user = new User(data);
    

    你实际上可以使用

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

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

    所以你可以像这样使用它

    createUser(userdata)
        .then(...)
        .catch(...);
    

    【讨论】:

    • 我知道我可以这样做,但我想将所有数据库回调保留在我的核心模块中,而不是在端点中处理它们。
    猜你喜欢
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 2014-08-21
    • 2014-01-10
    • 2017-12-08
    • 2016-09-23
    相关资源
    最近更新 更多