2012-05-24 10 views
7

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

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); 

त्रुटि आउटपुट: TypeError: Cannot read property 'port' of null

नोड v0.6.5

मैं एक्सप्रेस संस्करण 2.5.9 स्थापित - अपने लौटने कि मैं स्थापित किया है 2.5.8 - यकीन नहीं क्या उस के बारे में है।

उत्तर

4

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

बाध्य पता और सर्वर के बंदरगाह रिटर्न के रूप में ऑपरेटिंग सिस्टम द्वारा की सूचना दी।

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

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