res.status() 与 res.statusCode

问题描述 投票:0回答:3

我想知道这两种不同的方法在 expressjs 中是否相同?

 res.statusCode = 500;
 return res.json({
  status: "error"
 });

return res.status(500).json({
  status: "error"
});
node.js express response status
3个回答
14
投票

expressjs - 响应

res
对象是Node自带响应对象的增强版,支持所有内置字段和方法.

res.status(代码)

设置响应的 HTTP 状态。它是 Node 的 response.statusCode.

的可链接别名

所以结果是一样的。 expressjs 刚刚添加了

statusCode
.

的链式版本

0
投票

这是

res.status
函数的实际实现,它最终设置了
statusCode
。但是
res.status
在设置
statusCode
之前执行额外的检查。

两者在实现的方面是相同的,但

res.status
更可取。

res.status = function status(code) {
  if ((typeof code === 'string' || Math.floor(code) !== code) && code > 99 && code < 1000) {
    deprecate('res.status(' + JSON.stringify(code) + '): use res.status(' + Math.floor(code) + ') instead')
  }
  this.statusCode = code;
  return this;
};

-6
投票

同一个代码中有多个状态代码,如状态代码 200、404 和 500? 200为成功,404为没有数据匹配。

© www.soinside.com 2019 - 2024. All rights reserved.