2012-04-19 14 views
6

Tôi đang phát triển một ứng dụng nhanh.Sử dụng process.on ('uncaughtException để hiển thị một trang 500 lỗi

Tôi hiện có sau trong server.js tôi

process.on('uncaughtException', function (err) { 
    console.log("UNCAUGHT EXCEPTION "); 
    console.log("[Inside 'uncaughtException' event] " + err.stack || err.message); 
}); 

nào dừng máy chủ đâm mỗi khi có một lỗi, tuy nhiên, nó chỉ ngồi ở đó ...

là nó có thể thay vì console.log, để gửi một trang 500 lỗi với các chi tiết lỗi?

Trả lời

8

tôi không nghĩ bạn có thể từ trong số uncaughtException thực hiện một phản hồi vì điều đó có thể xảy ra ngay cả khi không có yêu cầu nào xảy ra.

tốc tự cung cấp một cách để handle errors trong tuyến đường, như vậy:

app.error(function(err, req, res, next){ 
    //check error information and respond accordingly 
}); 
+2

Không làm việc. 'app.error' không được xác định. Có lẽ API ExpressJS đã thay đổi kể từ khi câu trả lời này được đăng (> 2 năm trước). Xử lý ngoại lệ ExpressJS được đề cập tại: http://expressjs.com/guide.html#error-handling –

+0

app.error không phải là một hàm. –

4

mỗi ExpressJS Error Handling, thêm app.use(function(err, req, res, next){ // your logic }); dưới app.use báo cáo khác của bạn.

Ví dụ:

app.use(function(err, req, res, next){ 
    console.log(err.stack); 
    // additional logic, like emailing OPS staff w/ stack trace 
}); 
Các vấn đề liên quan