服务器错误发送到快递客户端

use*_*932 2 node.js express

在以下node.js服务器代码中,由于"ABCDE"不是已定义的变量,因此在请求"/ upload"时会引发错误.令我困惑的是,在服务器端控制台上打印的错误堆栈跟踪被发送回客户端,这是不安全的.

除了捕获错误之外,我该如何防止这种情况?

var express = require('express');
var app = express();

app.use(function (err, req, res, next) {
    res.send(500, 'Something broke!');
});
app.post('/upload', function (req, res) {
    console.log(ABCDE);
});
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

jos*_*736 6

您已经在问题中找到了答案.您需要错误处理中间件(app.usearity为4的函数)来处理错误.

您只需要在路由器之后添加错误处理中间件.您的示例将错误处理程序放在路由器上方.

移动app.use(function (err, req, res, next))到代码的底部或插入

app.use(app.router);
Run Code Online (Sandbox Code Playgroud)

在错误处理程序之上.

有关错误处理程序的更多信息,请参阅文档.