Node.js:我应该丢弃错误请求吗?

时间:2014-08-22 13:26:31

标签: node.js error-handling

使用Node.js构建服务器时请求有时可能会失败。例如,解析POST数据时可能会出错。发生任何错误时:

  • 我是否应该继续处理请求并冒一些POST数据可能已损坏或丢失的风险,并回应好像什么也没发生(或响应并通知用户,发生了一些错误)?

    < / LI>
  • 尝试重新分析POST数据(如果它失败了,让我们说,3次,停止尝试,将错误添加到错误日志并向用户显示错误页面)?

  • 立即停止请求处理并抛出500错误?

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

在这种情况下要问自己的关键问题是IMO:

  1. 我知道为什么会发生错误吗?
  2. 我可以从中恢复吗?

答案仅取决于您的应用程序。通常,仅当您可以期望下一次尝试得到不同的结果时,重试某些操作才有意义。与外部系统集成时,这通常适用于各种意外错误。另一方面,如果您收到的错误明确指出它收到了例如错误的请求,或者文件不存在,那么无论您重试同一操作多少次,都可能不会改变。

如果您的业务规则允许您在完全忽略错误的情况下继续操作,请这样做。如果您的业务规则允许您部分执行请求,并且能够报告部分失败,请执行此操作。如果该错误阻止了对该请求的任何处理,那么您将不得不终止该请求并向用户报告。

在我看来,您有个特殊的想法,因此让我来解决请求正文重新解析的问题。在适当的系统中,这样做应该是毫无意义的-如果您期望得到不同的结果,则设置根本存在错误,因为请求的主体一旦收到就不应更改。您的应用程序绝不应以任何方式修改请求数据。

作为更普遍的规则-如果您期望应用程序中可能会发生意外情况,但是您不知道何时,为什么或如何,那么应用程序的结构/执行方式就会出现问题。您应该拥有自己的代码,并确切地知道它的作用。