2013-08-04 76 views
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); 

回答

5

你已經有你的問題的答案。您需要錯誤處理中間件(app.use函數,其中一個函數的參數爲​​4)來處理錯誤。

您只需要在路由器之後添加錯誤處理中間件。您的示例將錯誤處理程序放在路由器上方。

無論是移動app.use(function (err, req, res, next))你的代碼的底部或插入

app.use(app.router); 

錯誤處理程序上面。

Refer to the documentation for more information about error handlers.

+0

此鏈接現已斷開。 – Griffork

+0

...現在有一個重定向。所以鏈接再次運作。 – teroi

相關問題