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

时间:2016-07-27 18:33:04

标签: node.js express

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

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

4 个答案:

答案 0 :(得分:14)

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

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

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

在文档中阅读更多内容:

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

答案 1 :(得分:3)

正如异常所指出的那样,128mb设置并发送状态。

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

答案 2 :(得分:0)

res.sendStatus是实现res.sendres.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')

答案 3 :(得分:0)

不,它不适用于像删除这样的特殊路由器 不同之处在于 res.status() 仅设置标头,当您发送响应 (res.send()) 时,它将发送给用户 但是 res.sendStatus() 在没有响应正文的情况下发送响应