如何通过Express / Node以编程方式发送404响应?

我想在Express / Node服务器上模拟404错误。我怎样才能做到这一点?

斯丁2020/03/24 10:59:33

更新了Express 4.x的答案

res.send(404)新方法不是在Express的旧版本中使用而是

res.sendStatus(404);

Express会发送一个非常基本的404响应,并带有“未找到”文本:

HTTP/1.1 404 Not Found
X-Powered-By: Express
Vary: Origin
Content-Type: text/plain; charset=utf-8
Content-Length: 9
ETag: W/"9-nR6tc+Z4+i9RpwqTOwvwFw"
Date: Fri, 23 Oct 2015 20:08:19 GMT
Connection: keep-alive

Not Found
神乐2020/03/24 10:59:33

您不必模拟它。res.send我相信第二个参数是状态码。只需将404传递给该参数即可。

让我澄清一下:根据expressjs.org上的文档,似乎传递给的任何数字都res.send()将被解释为状态码。因此从技术上讲,您可以摆脱:

res.send(404);

编辑:我不好,我的意思res不是req应在响应中调用

编辑:从Express 4开始,该send(status)方法已被弃用。如果您使用的是Express 4或更高版本,请使用:res.sendStatus(404)代替。(感谢@badcc的评论提示)