2

在以下 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);
4

1 回答 1

6

你的问题已经有了答案。您需要错误处理中间件(app.use元数为 4 的函数)来处理错误。

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

将 移至app.use(function (err, req, res, next))代码底部或插入

app.use(app.router);

在错误处理程序之上。

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

于 2013-08-04T20:23:30.917 回答