我想知道这两种不同的方法在 expressjs 中是否相同?
res.statusCode = 500;
return res.json({
status: "error"
});
或
return res.status(500).json({
status: "error"
});
对象是Node自带响应对象的增强版,支持所有内置字段和方法.res
设置响应的 HTTP 状态。它是 Node 的 response.statusCode.
的可链接别名
所以结果是一样的。 expressjs 刚刚添加了
statusCode
. 的链式版本
这是
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;
};
同一个代码中有多个状态代码,如状态代码 200、404 和 500? 200为成功,404为没有数据匹配。