2012-12-13 11 views

उत्तर

16

NodeJS (नीचे निकालने) के स्रोत कोड के आधार पर, createServer एक Server का दृष्टांत के लिए सिर्फ एक सहायक विधि है लगता है।

line 1674 of http.js से निकालें।

exports.Server = Server; 


exports.createServer = function(requestListener) { 
    return new Server(requestListener); 
}; 

तो इसलिए केवल सच दो कोड स्निपेट आप अपने मूल प्रश्न में उल्लेख किया है, में अंतर यह है कि आप new कीवर्ड उपयोग नहीं कर रहे है।


स्पष्टता के लिए Server निर्माता (पोस्ट के समय - 2012-12-13) इस प्रकार है:

function Server(requestListener) { 
    if (!(this instanceof Server)) return new Server(requestListener); 
    net.Server.call(this, { allowHalfOpen: true }); 

    if (requestListener) { 
    this.addListener('request', requestListener); 
    } 

    // Similar option to this. Too lazy to write my own docs. 
    // http://www.squid-cache.org/Doc/config/half_closed_clients/ 
    // http://wiki.squid-cache.org/SquidFaq/InnerWorkings#What_is_a_half-closed_filedescriptor.3F 
    this.httpAllowHalfOpen = false; 

    this.addListener('connection', connectionListener); 

    this.addListener('clientError', function(err, conn) { 
    conn.destroy(err); 
    }); 
} 
util.inherits(Server, net.Server); 
+0

धन्यवाद, मैं के रूप में ज्यादा सोचा। पठनीयता के हित में, क्या आप अपने कोड उदाहरण में 'सर्वर' कन्स्ट्रक्टर जोड़ सकते हैं? – wulfgarpro

+0

@ wulfgar.pro कोई समस्या नहीं, अभी जोड़ा गया – isNaN1247

3

the docs के अनुसार, यह होने के लिए

http.createServer = function (requestListener) { 
    var ser = new http.Server(); 
    ser.addListener(requestListener); 
    return ser; 
}; 
संबंधित मुद्दे