我不知道这样做的函数,有人知道吗?
当前回答
虽然上面的答案是正确的,但对于那些希望在IISNODE中工作的人来说,还需要指定
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>
<configuration>
在你的网里。配置(否则IIS将吃掉您的输出)。
其他回答
覆盖express中的所有HTTP动词
为了覆盖所有HTTP动词和所有剩余路径,您可以使用:
app.all('*', cb)
最终的解决方案是这样的:
app.all('*', (req, res) =>{
res.status(404).json({
success: false,
data: '404'
})
})
你不应该忘记把路由器放在最后。 因为路由器的顺序很重要。
你问题的答案是:
app.use(function(req, res) {
res.status(404).end('error');
});
有一篇很棒的文章讲述了为什么这是最好的方法。
上面的答案很好,但其中一半的答案不会返回404作为HTTP状态代码,而另一半答案则不能呈现自定义模板。在Expressjs中拥有自定义错误页面(404)的最佳方法是
app.use(function(req, res, next){
res.status(404).render('404_error_template', {title: "Sorry, page not found"});
});
将此代码放在所有URL映射的末尾。
发送到自定义页面:
app.get('*', function(req, res){
if (req.accepts('html')) {
res.send('404', '<script>location.href = "/the-404-page.html";</script>');
return;
}
});
在app.js的最后一行放入这个函数。这将覆盖默认的page-not-found错误页面:
app.use(function (req, res) {
res.status(404).render('error');
});
它将覆盖没有有效处理程序的所有请求,并呈现您自己的错误页面。
推荐文章
- 检查已安装的angular-cli版本?
- 如何将Blob转换为JavaScript文件
- 如何用Express/Node以编程方式发送404响应?
- 如何安装包从github回购在纱线
- 什么时候.then(success, fail)被认为是承诺的反模式?
- 自动HTTPS连接/重定向使用node.js/express
- 在nodejs http中body在哪里。得到回应?
- 如何在猫鼬排序?
- Nodemon错误:“已达到文件监视器数量的系统限制”
- 如何使webpack开发服务器运行在端口80和0.0.0.0使其公开访问?
- 如何在node.js模块中访问和测试内部(非导出)函数?
- 如何将base64编码的映像保存到磁盘?
- 在用nodejs和express创建的REST API中设置响应状态和JSON内容的正确方法
- 如何获得请求路径与表达请求对象
- 节点和错误:EMFILE,打开的文件太多