2012-02-09 19 views
8

के लिए EADDRINUSE त्रुटि सुनें मेरे पास सरल नोड जेएस http सर्वर है।नोड जेएस सरल httpserver

var http = require("http"); 

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

अगर मैं

node basicserver.js 

चलाने मैं

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: listen EADDRINUSE 
    at errnoException (net.js:642:11) 
    at Array.0 (net.js:743:26) 
    at EventEmitter._tickCallback (node.js:192:40) 

मैं this पोस्ट देखा है मिलता है, लेकिन उस पोस्ट TCP सर्वर और नहीं HTTP सर्वर के लिए विशिष्ट हो रहा है। क्या कोई मदद कर सकता है।

उत्तर

22

जिस पोर्ट को आप सुन रहे हैं उसे पहले ही किसी अन्य प्रक्रिया द्वारा सुना जा रहा है। इस मामले में मुझे एहसास हुआ कि यह तुम्हारा आत्म है। आप ps aux | grep node कर सकते हैं और फिर kill <pid> का उपयोग करके अपनी नोड प्रक्रिया को मार सकते हैं। इसके अलावा आप एक और बंदरगाह भी कोशिश कर सकते हैं।

--Update--

मामले में यदि आप जो प्रक्रिया सुन रहा है पता लगाना चाहते हैं, तो आप उपयोग कर सकते हैं netstat -lpn (-l है सुनने के बंदरगाहों पता लगाने के लिए, -p है प्रक्रिया नाम और पीआईडी, -n शामिल करने के लिए मेजबान नामों को हल करने के लिए नहीं है, अन्यथा यह धीमा हो जाएगा), विभिन्न बंदरगाहों पर सुनने वाली प्रक्रियाओं को ढूंढने के लिए। यदि बहुत अधिक थे, तो आप netstat -lnp | grep :8888 कर सकते हैं।

भी उपयोग कर सकते हैं, fuser 8888/tcp, जो आप प्रक्रिया पीआईडी ​​और भी -k जोड़ने प्रक्रिया मार डालेगा, सबसे तेज रास्ता दिखाएगा।

मुझे एहसास हुआ कि यह दो आदेश केवल लिनक्स में काम करते हैं।

+0

मैं बहुत मूर्ख हूँ। धन्यवाद। – riship89

+0

असल में ईमानदार होने के कारण मुझे कुछ ज़ोंबी बाल प्रक्रियाओं के साथ एक ही समस्या थी। –

+0

एफवाईआई, 'नेस्टैट -एलएनपी | grep: 8888' उदाहरण में 'नेटस्टैट' में एक टाइपो है – klamping

2

जब आप सर्वर चलाने का प्रयास करते हैं तो वही समस्या हो सकती है, लेकिन आपके पास रूट विशेषाधिकार नहीं हैं।

6

मेरी मशीन पर सभी प्रयोगों को मारने के लिए मेरा पसंदीदा ...

killall node 
0

मैं भी EADDRINUSE 127.0.0.1 के साथ इस मुद्दे का सामना किया। नोड प्रक्रियाओं की जांच करने के बाद मैंने सर्वर आईपी को 'लोकलहोस्ट' में बदल दिया। ऐसा करने के बाद यह ठीक शुरू हुआ। उम्मीद है की यह मदद करेगा।

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