2012-04-19 10 views
8
पर मेरा पूरा Node.js ऐप्स क्रैश से त्रुटियों को रोकने

मैं Herokuहैंडलिंग या Heroku

जब भी मेरे ऐप एक त्रुटि, पूरे सर्वर क्रैश हो जाता है, यह किसी के लिए उपलब्ध नहीं बनाने का सामना करना पड़ता पर होस्ट एक Node.js एप्लिकेशन मिल गया है ।

क्या इसके बजाय कोई त्रुटि पृष्ठ वापस करने का कोई तरीका है, और सर्वर को जिंदा रखें?

मैं इस, Node.JS with forever on Heroku पढ़ा, लेकिन यह मेरे सवाल ....

+0

I * आधा * यह पता लगाया - हालांकि, मुझे एक त्रुटि पृष्ठ भेजने में परेशानी हो रही है - http://stackoverflow.com/questions/10221309/use-process-onuncaughtexception-to-show-a-500-error -पृष्ठ – Alex

+0

मुझे अच्छे उत्तर के साथ एक और समान पोस्ट मिला। जांच करें [यहां] [1] [1]: http://stackoverflow.com/questions/5999373/how-do-i-prevent-node-js-from-crashing-try- पकड़-काम नहीं करता – Sadaka

उत्तर

8

http://nodejs.org/docs/latest/api/process.html#process_event_uncaughtexception

आप और uncaughtException घटना के लिए सुन तो अपने त्रुटि से निपटने कर सकते हैं का जवाब नहीं दिया। आदर्श रूप में, आपके कॉलबैक को एक त्रुटि तर्क वापस करना चाहिए और फिर त्रुटि प्रबंधन करना चाहिए।

4

आप शायद DOMAIN का उपयोग कर सकते हैं, यह शायद आपके सर्वर को क्रैश होने से रोक देगा जब एक uncaughtException फेंक दिया जाता है।

domain = require('domain'), 
d = domain.create(); 

d.on('error', function(err) { 
    console.error(err); 
}); 
अधिक जानकारी के लिए

जाना http://shapeshed.com/uncaught-exceptions-in-node/

इस पद्धति का उपयोग करना चाहिए अपने ब्लॉक की कोशिश-पकड़ के बगल में।

+1

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन बस अपडेट करने के लिए: ** DOMAIN ** को बहिष्कृत कर दिया गया है और अब इसका उपयोग नहीं किया जाना चाहिए। – Azevedo

+0

@ अजेवेडो आपके अपडेट के लिए धन्यवाद लेकिन दुर्भाग्य से नोड डॉक्स द्वारा प्रदान किया गया कोई अन्य बेहतर प्रतिस्थापन नहीं है। आप यहां और पढ़ सकते हैं http://stackoverflow.com/questions/5999373/how-do-i-prevent-node-js-from-crashing-try-catch-doesnt-work –