首页 > 解决方案 > 在 async 函数中等待而无需在sails mongo db中尝试和捕获

问题描述

我正在为我的网络应用程序使用sails JS 和mongo db。我的代码工作正常。但我有一个疑问。

我的数据库语句是这样的:

var a = await users.create({username:username,id:id}).fetch(); 

没有尝试和捕捉。没有错误处理。它在我的本地主机中运行良好。如果我转向生产,那会产生问题吗?

标签: node.jsmongodbsails.jssails-mongo

解决方案


任何有可能被拒绝的承诺都必须有某种类型的错误处理程序。如果你不这样做并且你遇到了那个错误,那么你的 JS 基本上会因未处理的异常而崩溃。

不以某种方式处理任何可能的错误只是糟糕的编程。您应该捕获错误,记录它并从任何可能发起此调用的 http 请求返回某种错误状态。

没有错误处理。它在我的本地主机中运行良好。

当然,只要数据库调用永远不会出错,它就可以正常工作。如果出现某种数据库错误,您期望会发生什么?你想让你的服务器崩溃吗?如果您的服务器刚刚崩溃,您知道是什么原因造成的吗?您的用户会收到任何关于存在问题的反馈吗?

如果我转向生产,那会产生问题吗?

它当然可以。如果此调用的数据发生了某些事情,或者您的数据库发生了导致错误的事情,那么您的服务器可能会崩溃,并且无论发起什么 http 请求,都不会得到响应。

在您的服务器中无法以某种方式处理所有可能的错误只是糟糕的编程。这是一种常见的捷径或缺乏对细节的关注,但这总是一个错误。作为一名为低级开发人员参与代码审查的高级开发人员,这是代码审查失败的一个原因,需要进一步注意正确的错误处理。


推荐阅读