javascript - express.js中的next(err)处理程序消息

标签 javascript node.js express error-handling

我是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/

相关文章:

javascript - 根据两个条件检查 javascript 中的 mimetype

javascript - 如何删除突出显示的单词后面的多余空格?

javascript - ES6 中允许类生成函数吗?

javascript - 如何获取 JSON 值并将它们保存在 js 中的另一个文件中

javascript - 使用 MongoDB 连接池的 NodeJS 一次性脚本 - 如何终止?

javascript - 如何在 RT 上添加插件和使用一些外部模块/文件

javascript - 如何使可操作的桌面斑马条纹?

node.js - 如何将变量放入我的查询中? ( Mongoose )

express - 如何将混合类型转换为对象类型

node.js - Express 的 get 函数中以下路径表示 "/^\/.*/"是什么意思?