【问题标题】:Express: Is it necessary to respond with status 200?Express:需要回复状态200吗?
【发布时间】:2019-04-23 11:48:26
【问题描述】:

是否需要使用状态码200 进行响应,还是默认行为?

response.json({
  status: 'OK',
});

对比

response
  .status(200)
  .json({
    status: 'OK',
  });

当我在浏览器中点击路由时,两种情况下都会收到 200 响应

到目前为止,我只对 200 以外的其他响应使用状态码(例如 404、500)

【问题讨论】:

  • 我不会说这是必要的,但它肯定是惯例。
  • 不,没有必要。前者不需要调用 .status(200) 就可以这样做。为什么要问你是否已经确认了这一点?
  • 我会说这更像是一种最佳实践......就个人而言......但不,这绝不是强制性的。
  • @KevinB 谢谢你的回答。我之所以问,是因为我不确定我的陈述,并且在特快文档或其他地方都找不到任何答案。每个人使用它的方式都不一样,我一直在寻找最佳实践,即使其中一个比另一个可能仍然有一些好处
  • 这根本不是“最佳实践”......如果您愿意,它只是一种您可以调用的方法。这不是必需的,您可以接受默认值,或传递一个值以确保它是您想要的。

标签: javascript node.js http express server


【解决方案1】:

Express response object 包装了底层的Node.js response object。在 Node.js 中,如果您不设置响应,it will always be 200。 Express 对大多数请求的操作方式相同。它还会根据是否以及在何处引发错误,自动为您设置一些错误响应代码。

此外,Express会在某些类型的路由上为您设置响应码,例如,如果您有defined a redirect,它会自动为您设置302码。

【讨论】:

    猜你喜欢
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 2015-10-13
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多