App.address () कैसे शून्य हो जाता है जब HOST app.listen (पोर्ट, HOST) में सेट होता है;

जब 127.0.0.1 नीचे छोड़ा जाता है app.address() शून्य नहीं है, लेकिन जब कोई होस्ट सेट होता है, तो यह शून्य है।

var express = require('express'),
    app = express.createServer();

app.use(express.logger());

app.get('/', function(req, res){
    res.send('Hello World');
});

app.listen(3000, '127.0.0.1');
console.log(app.address());
console.log('Express server started on port %s', app.address().port);

Error output: TypeError: Cannot read property 'port' of null

नोड v0.6.5

मैंने एक्सप्रेस संस्करण 2.5.9 स्थापित किया - इसकी वापसी कि मैंने 2.5.8 स्थापित किया है - यह सुनिश्चित नहीं है कि यह क्या है।

0
जोड़ा संपादित
विचारों: 1

1 उत्तर

क्योंकि, app.address() को नोड के HTTP मॉड्यूल से विरासत में मिला है। यदि आप दस्तावेज़ को देखते हैं तो लिखते हैं:

रिपोर्ट के अनुसार सर्वर के बाध्य पते और बंदरगाह देता है   ऑपरेटिंग सिस्टम।

इसलिए मुझे लगता है, जब आप एक आईपी के साथ एक बंदरगाह का अनुरोध करते हैं, तो ओएस इसे वापस रिपोर्ट नहीं करता है, इसलिए यह विधि शून्य हो जाती है। हालांकि, जब आप नहीं करते हैं, तो आपको अपने कंप्यूटर के आईपी या पते की आवश्यकता हो सकती है, क्योंकि प्रत्येक कंप्यूटर को "लोकलहोस्ट" नहीं होना चाहिए, उनके पास अलग-अलग डोमेन हो सकते हैं, जिससे आप उस डोमेन पर केवल सॉकेट को बांध सकें।

0
जोड़ा