Node.js 如何处理节点mongoDB查询中的DB错误?

Node.js 如何处理节点mongoDB查询中的DB错误?,node.js,mongodb,sails.js,sails-mongo,Node.js,Mongodb,Sails.js,Sails Mongo,我在node-sails js mongo db中有一段代码,如下所示,用于用户注册: 注册fn: try{ let err; let user = await User.create({req.body}).fetch(); if (!user){ throw new Error('Failed'); } res.status(200).json({user}); }catch(e){ res.status(500).json({

我在node-sails js mongo db中有一段代码,如下所示,用于用户注册: 注册fn:

try{
    let err;
    let user = await User.create({req.body}).fetch();
    if (!user){
      throw new Error('Failed');
    }
    res.status(200).json({user});
  }catch(e){
    res.status(500).json({e.message});
  }
};
请求正文:

{

    "firstName": "jay", // required
    "lastName": "Thomas", 
    "email":"yo@gmail.com", // required and unique
    "password": "X12345678", // required
    "languages":["c++", "english"]
}
如果我没有将
电子邮件拼写到emal,
它应该通过一个db错误来执行并发送响应,但它也会在控制台上显示错误,这是我不希望看到的。我只希望它发送错误作为响应。
对此,我需要做哪些更改?

我是否可以建议Sails提供现成的内置响应,而不是使用res.status?Sails通过内置的响应函数处理响应,例如
return res.serverError(err)
return res.badRequest(err)

如果查看
/api/responses
路径,您应该会看到一个名为“serverError.js”的文件,它与500状态代码响应相匹配

在这个文件中(我在最新版本的Sails.js的第35行)有这样一行:

// Log error to console
sails.log.error('Sending 500 ("Server Error") response: \n', flaverr.parseError(data) || data);
这表示打算将任何错误记录到控制台或默认情况下的文件中,这是错误记录的最佳实践

如果您需要忽略错误,您可以编辑这些响应文件以删除默认控制台日志记录,更改日志级别以忽略错误(不推荐),或者尝试拦截错误并以自己的方式优雅地处理它们,可以在以下位置看到执行此操作的方法:


您指的是哪个控制台-浏览器还是服务器端?服务器端控制台当前我通过手动提取req.body字段并验证它们来实现这一点,从而捕获错误并发送响应。如果您有更好的解决方案,请务必告诉我。