2012-04-19 14 views
6

मैं एक एक्सप्रेस एप्लिकेशन विकसित करने कर रहा हूँ।उपयोग process.on ('uncaughtException एक 500 त्रुटि पृष्ठ दिखाने के लिए

मैं वर्तमान में मेरे server.js में निम्न होना

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

कौन सा सर्वर दुर्घटनाग्रस्त बंद हो जाता है हर बार उसमें कोई त्रुटि है, हालांकि, यह सिर्फ वहाँ बैठता है ...

बजाय console.log की, त्रुटि विवरण के साथ एक 500 त्रुटि पृष्ठ भेजने के लिए करने के लिए?

उत्तर

8

मुझे नहीं लगता कि यह संभव है आप uncaughtException के भीतर से एक प्रतिक्रिया कर सकते हैं क्योंकि ऐसा तब भी हो सकता है जब कोई अनुरोध न हो।

एक्सप्रेस ही है, मार्गों भीतर handle errors के लिए एक रास्ता प्रदान करता है ताकि तरह:

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

काम नहीं करता। 'app.error' परिभाषित नहीं किया गया। शायद इस उत्तर को पोस्ट किया गया था (> 2 साल पहले) ExpressJS एपीआई बदल गया। ExpressJS अपवाद हैंडलिंग पर कवर किया गया: http://expressjs.com/guide.html#error-handling –

+0

app.error एक फ़ंक्शन नहीं है। –

4

प्रति ExpressJS Error Handling, अपने अन्य app.use बयान नीचे app.use(function(err, req, res, next){ // your logic }); जोड़ें।

उदाहरण:

app.use(function(err, req, res, next){ 
    console.log(err.stack); 
    // additional logic, like emailing OPS staff w/ stack trace 
}); 
संबंधित मुद्दे