express.status()与response.sendStatus()在express中的区别

ret*_*uth 11 node.js express

Express response.status()response.sendStatus()Express 之间有什么区别.

我注意到一个通常用于post,get和其他中间件,而后者用于删除请求.为什么是这样?

fre*_*ish 17

status() 在响应上设置http状态(作为服务器端的javascript对象)

sendStatus() 两者都设置状态并将其发送到客户端

用法不依赖于http请求方法.在大多数情况下,sendStatus无论如何都会使用,因为一旦处理请求,状态就不会发生变化(特别是因为状态代码是原始http响应中的第一行).

阅读文档中的更多内容:

https://expressjs.com/en/4x/api.html#res.sendStatus


MJ *_*tes 11

res.sendStatus是实现res.send和的简写res.status

@freakish 分享的链接解释了这一切。

res.sendStatus(200); // equivalent to res.status(200).send('OK')
res.sendStatus(403); // equivalent to res.status(403).send('Forbidden')
res.sendStatus(404); // equivalent to res.status(404).send('Not Found')
res.sendStatus(500); // equivalent to res.status(500).send('Internal Server Error')
Run Code Online (Sandbox Code Playgroud)


小智 5

正如怪癖已经指出的那样,sendStatus设置并发送状态。

这意味着如果您既要设置状态又要发送正文,则必须使用status。例如,您想要设置一个错误状态,并发送带有JSON的主体来解释错误发生的原因,您首先必须设置状态(使用status),然后发送JSON(使用send)。如果您已经使用设置了状态sendStatus,则不再可能发送JSON,因为您已经使用了send的形式。