我是Express错误处理的新手,我有一段简单的代码,如下所示:
const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const app = express();
let url = 'mongodb://localhost:27017';
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use((err,req,res,next) => {
console.log(`The error message is ${err}`)
res.status(err.httpStatusCode).send('SOMETHING BROKE!');
})
app.get('/',function(req,res,next){
MongoClient.connect(url,function(error,client){
if(error){
error.httpStatusCode = 500;
return next(error);
}
res.send('Connected successfully!');
})
})
我已经关闭了与mongodb的连接,所以失败了。显示了错误,并且应用程序没有崩溃,但我的Express错误处理程序未按预期获得“SOMETHING BROKE”或console.log()部分。我在哪里错呢?
最佳答案
最后放置错误处理中间件
Express error handling
app.get('/',function(req,res,next){
MongoClient.connect(url,function(error,client){
if(error){
error.httpStatusCode = 500;
return next(error);
}
res.send('Connected successfully!');
})
})
app.use((err,req,res,next) => {
console.log(`The error message is ${err}`)
res.status(err.httpStatusCode).send('SOMETHING BROKE!');
})
关于javascript - express.js中的next(err)处理程序消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61585656/