2012-09-19 18 views
12

मैं node.js के लिए नया हूं और बुनियादी सामग्री के साथ प्रयोग करने की कोशिश कर रहा हूं।Node.js http.create सर्वर त्रुटि कैसे प्राप्त करें

मेरे कोड इस

var http = require("http"); 
http.createServer(function(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello World"); 
    response.end(); 
}).listen(8888); 

है यहाँ सवाल है - मैं कैसे देख सकते हैं अपवाद फेंक दिया (या घटनाओं फेंक दिया) createServer बुला जब? मैंने कोशिश की/पकड़ने की कोशिश की लेकिन यह काम नहीं लग रहा है। मॉड्यूल के एपीआई में मुझे इसका कोई संदर्भ नहीं मिला। मैं पूछ रहा हूं क्योंकि मैंने गलती से एक बंदरगाह (8888) पर एक सर्वर शुरू किया था और मुझे मिली त्रुटि (कमांड लाइन में) त्रुटि थी: EDDRINUSE, यह काफी उपयोगी है लेकिन यह समझने में अच्छा लगेगा कि त्रुटियों को कैसे पकड़ा जाता है नोड में

उत्तर

1

आप

process.on('uncaughtException', function(e){ 
    console.log(e); 
}); 

ध्यान में न आया अपवाद को संभालने के लिए उपयोग कर सकते हैं। वेब सर्वर से किसी भी अनचाहे अपवाद को इस तरह पकड़ा जा सकता है।

4

त्रुटि() विधि में त्रुटि उत्सर्जित होती है। API documentation में बस आपके बैठने के लिए example शामिल है।

4

निम्नलिखित कोड का उपयोग कर बेजोड़ अपवादों का स्टैकट्रैक प्रिंट करें।

process.on('uncaughtException', function(err) { 
      console.error(err.stack); 
}); 
+0

यह एक बुरा दृष्टिकोण, आप संसाधनों पागल ([>> आधिकारिक बयान] की तरह लीक कर सकता है (https://nodejs.org/api /process.html#process_event_uncaughtexception)) –

19

आप जो सर्वर बना रहे हैं उस पर त्रुटि ईवेंट को संभालने से आप ऐसा कर सकते हैं। सबसे पहले, .createServer() का परिणाम प्राप्त करें।

var server = http.createServer(function(request, response) { 

उसके बाद, आप आसानी से त्रुटियों को संभाल कर सकते हैं:

server.on('error', function (e) { 
    // Handle your error here 
    console.log(e); 
}); 
+2

यह सबसे अच्छा समाधान है क्योंकि यह सही 'सर्वर' दायरे पर सुनता है और पूरी प्रक्रिया नहीं। –

+0

बहुत बेहतर समाधान। –

संबंधित मुद्दे