Express中的response.status()
和response.sendStatus()
之间有什么区别。
我注意到一般用于post,get和其他中间件,而后者用于删除请求。为什么是这样?
答案 0 :(得分:14)
status()
在响应上设置http状态(作为服务器端的javascript对象)
sendStatus()
都设置状态并将其发送到客户端
用法不依赖于请求的http方法。在大多数情况下,无论如何都会使用sendStatus
,因为一旦处理请求,状态就不会发生变化(特别是因为状态代码是原始http响应中的第一行)。
在文档中阅读更多内容:
答案 1 :(得分:3)
正如异常所指出的那样,128mb
设置并发送状态。
这意味着如果要设置状态并发送正文,则必须使用sendStatus
。例如,您要设置错误状态,并发送带有JSON的主体以解释错误发生的原因,您首先必须设置状态(使用status
),然后发送JSON(使用{{ 1}})。如果您已经使用status
设置了状态,则不再可能发送JSON,因为您已经使用了send的形式。
答案 2 :(得分:0)
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')
答案 3 :(得分:0)
不,它不适用于像删除这样的特殊路由器
不同之处在于 res.status()
仅设置标头,当您发送响应 (res.send()
) 时,它将发送给用户
但是 res.sendStatus()
在没有响应正文的情况下发送响应