如何使用 Express/Node 以编程方式发送 404 响应?
我想在我的 Express/Node 服务器上模拟 404 错误。我怎样才能做到这一点?
I want to simulate a 404 error on my Express/Node server. How can I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
从 Express 4.0 开始,有一个专用的
sendStatus
函数:如果您使用的是早期版本的 Express,请使用
状态
函数 来代替。Since Express 4.0, there's a dedicated
sendStatus
function:If you're using an earlier version of Express, use the
status
function instead.Express 4.x 的更新答案
新方法不是像旧版本的 Express 中那样使用
res.send(404)
,而是:Express 将发送带有“Not Found”文本的非常基本的 404 响应:
Updated Answer for Express 4.x
Rather than using
res.send(404)
as in old versions of Express, the new method is:Express will send a very basic 404 response with "Not Found" text:
你不必模拟它。我认为
res.send
的第二个参数是状态代码。只需将 404 传递给该参数即可。让我澄清一下:根据 expressjs.org 上的文档,似乎任何数字都通过了
res.send()
将被解释为状态代码。所以从技术上讲,你可以逃脱:编辑:我的错,我的意思是
res
而不是req
。应该在响应上调用它编辑:从 Express 4 开始,
send(status)
方法已被弃用。如果您使用的是 Express 4 或更高版本,请改用:res.sendStatus(404)
。 (感谢@badcc 在评论中提供的提示)You don't have to simulate it. The second argument to
res.send
I believe is the status code. Just pass 404 to that argument.Let me clarify that: Per the documentation on expressjs.org it seems as though any number passed to
res.send()
will be interpreted as the status code. So technically you could get away with:Edit: My bad, I meant
res
instead ofreq
. It should be called on the responseEdit: As of Express 4, the
send(status)
method has been deprecated. If you're using Express 4 or later, use:res.sendStatus(404)
instead. (Thanks @badcc for the tip in the comments)根据我将在下面发布的网站,这就是您设置服务器的方式。他们展示的一个例子是这样的:
以及他们的路线功能:
这是一种方式。
http://www.nodebeginner.org/
他们从另一个站点创建一个页面,然后加载它。这可能更符合您的需求。
http://blog.poweredbyalt.net/?p=81
According to the site I'll post below, it's all how you set up your server. One example they show is this:
and their route function:
This is one way.
http://www.nodebeginner.org/
From another site, they create a page and then load it. This might be more of what you're looking for.
http://blog.poweredbyalt.net/?p=81
从 Express 站点,定义一个 NotFound 异常并在需要时抛出它在以下情况下有 404 页面或重定向到 /404:
From the Express site, define a NotFound exception and throw it whenever you want to have a 404 page OR redirect to /404 in the below case:
IMO 最好的方法是使用
next()
函数:然后错误由错误处理程序处理,并且您可以使用 HTML 很好地设置错误样式。
IMO the nicest way is to use the
next()
function:Then the error is handled by your error handler and you can style the error nicely using HTML.