【发布时间】:2021-03-08 02:15:25
【问题描述】:
在 express 中处理 404 和 500 错误并正确处理它们的正确方法是什么。我正在阅读一些解释处理 404 错误的不同方法的帖子。一个是在最后使用 * 路由处理程序
app.get('*',function(req,res){
res.render('404');
}
);
我遇到的另一个是使用中间件,如下所示
var express=require('express');
var app=express();
var routes=require('./routes/route.js');
app.set('view engine','ejs');
app.use(express.static(__dirname + '/public'));
app.get('/',routes.home);
app.get('/login',routes.login);
//Handling 404
app.use(function(req, res) {
res.status(404).render('404');
});
// Handling 500
app.use(function(error, req, res, next) {
res.status(500).render('500');
});
var port = process.env.PORT || 3000;
var server=app.listen(port,function(req,res){
console.log("Catch the action at http://localhost:"+port);
});
我正在使用中间件方法,但它仅在我将这些中间件放在最后时才有效,这毕竟是路由处理程序。如果我将这两个中间件都放在 '/' 和 '/login' 的路由处理程序之前,它不起作用。
这是处理 404 和 500 错误的正确方法吗?
【问题讨论】: