在异步功能中等待而无需尝试赶上mongo db

问题描述

我在我的Web应用程序中使用了Sails JS和mongo db。 我的代码工作正常。但是我有一个疑问。

我的数据库语句如下:

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

不要试图抓住。没有错误处理。 在我的本地主机上运行正常。如果我转到生产环境,会造成问题吗?

解决方法

任何有可能拒绝的承诺都必须具有某种类型的错误处理程序。如果不这样做,就会遇到该错误,那么您的JS实质上将崩溃,并带有未处理的异常。

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

没有错误处理。在我的本地主机上运行正常。

当然,只要数据库调用没有错误,它就可以正常工作。如果发生某种数据库错误,您会期望发生什么?您要服务器崩溃吗?您知道服务器崩溃了是什么原因吗?您的用户会收到任何有关问题的反馈吗?

如果我转投生产,那会带来问题吗?

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

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

,

否,这不会引起问题,但是如果在执行此过程时遇到错误,您将如何想象自己在应用程序中的许多地方都这样做了,并且有一些令人困惑的问题困扰着您,您将如何知道其来源?

所以您需要这样做以进行更多的错误处理!