我正在尝试创建一个错误处理中间件,正如您在创建
app.use((err,req,res,next) => {...}) 块我的IDE被自动识别为3参数中间件。我不能让它成为错误的下一个中间件。我想--也许IDE错了--索引了那个块--并试图运行它,而在运行express时,无法识别一个错误处理中间件。

我将" app.use“添加到我的server.js中(与app.js相同),并在听录音之前添加最后一个位置的app.use。
我使用的是最新的快车: 4.18.1
任何帮助,在找到一个解决方案将是伟大的!
非常感谢。
发布于 2022-05-12 12:47:46
在所有路由方法之后添加这两种方法:
// 404 not found error
app.get('*', (req, res) => {
res.status(404).send('<h1>error 404 not found</h1>');
})
// 500 server error
app.use((error, req, res, next)=>{
if(error){
res.send('500 OOPS :( Something went wrong... Please try again. ')
}
})发布于 2022-05-15 14:06:34
弄明白了!
问题是我在"server.js“中添加了”错误处理中间件“,它应该在相关控制器的placeholder.routes.js中。
在我添加了他附加的代码之后,abdurrahim的答案确实帮了我的忙,我看到它捕获了错误,而从技术上讲,"500服务器错误“是一个错误处理中间件。
因此,我在路由文件中添加了以下代码,并设法处理了抛出的不同错误。
谢谢一堆人!

https://stackoverflow.com/questions/72214578
复制相似问题