2012-09-24 23 views
7

ठीक है, तो यह अनुरोध के होस्ट नाम पाने के लिए Node.js में बहुत आसान लगता है, अपने सर्वर के प्रयास किए जा:NodeJS सर्वर होस्ट नाम

app.get('/', function(req,res){ 
    console.log(req.headers.host); 
}); 

वहाँ एक आसान तरीका अपने वास्तविक http के होस्ट नाम निर्धारित करने के लिए है सर्वर? उदाहरण के लिए, मेरा सर्वर पता http://localhost:3000 पर चल रहा है - क्या मैं प्रोग्रामिक रूप से इस पते को निर्धारित कर सकता हूं? मैं expressjs का उपयोग कर रहा हूँ।

उत्तर

12

हाँ आप इसका उपयोग कर सकते हैं;

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

server.listen(3000, function(err) { 
     console.log(err, server.address()); 
}); 

प्रिंट चाहिए

{ address: '0.0.0.0', family: 'IPv4', port: 3000 } 

आप भी पालन करते हुए ओएस के लिए होस्ट नाम नहीं निकाला जा सकता है;

require('os').hostname(); 
+0

ग्रेट, प्रतिक्रिया और सहायता के लिए धन्यवाद! यदि मैं टर्मिनल में "स्थानीयहोस्ट होस्ट करता हूं" तो मुझे प्रतिक्रिया मिलती है "स्थानीयहोस्ट का पता 127.0.0.1 है", लेकिन server.address() "0.0.0.0" उत्पन्न करता है। क्या विसंगति का कोई कारण है? –

+1

मुझे यकीन नहीं है कि यह 0.0.0.0 का हल क्यों करता है, मुझे बाध्य टीसीपी सॉकेट सुनने के लिए पता() विधि का उपयोग करने का प्रयास करते समय समस्या आई थी क्योंकि विंडोज 0.0.0.0 आईपी पते के लिए एक त्रुटि को आग लगाना था, मेरे पास था मैप करने के लिए 0.0.0.0 से 127.0.0.1 0.0.0.0 कई कारणों से हो सकता है, इसका मतलब मशीन पर सभी इंटरफेस हो सकता है, इसका मतलब यह भी हो सकता है कि कोई आईपी मशीन के साथ-साथ कुछ अन्य चीजों से जुड़ा हुआ नहीं है मैंने जिस छोटे से शोध पर किया है उससे अच्छी तरह से। –

+1

मेरे लिए 'लोकलहोस्ट' '{पता: '::', परिवार: 'आईपीवी 6', पोर्ट: 5000}' के रूप में आता है। – ptf

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