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

时间:2013-08-04 14:44:35

标签: 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);

1 个答案:

答案 0 :(得分:6)

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

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

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

app.use(app.router);
错误处理程序上方的

Refer to the documentation for more information about error handlers.