नोड.जेएस 'http.Server और http.createServer, क्या अंतर है?
http.Server (फ़ंक्शन (req, res) {}) के बीच क्या अंतर है;
और
http.createServer (समारोह (अनुरोध, रेस) {});
नोड.जेएस 'http.Server और http.createServer, क्या अंतर है?
http.Server (फ़ंक्शन (req, res) {}) के बीच क्या अंतर है;
और
http.createServer (समारोह (अनुरोध, रेस) {});
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);
the docs के अनुसार, यह होने के लिए
http.createServer = function (requestListener) {
var ser = new http.Server();
ser.addListener(requestListener);
return ser;
};
धन्यवाद, मैं के रूप में ज्यादा सोचा। पठनीयता के हित में, क्या आप अपने कोड उदाहरण में 'सर्वर' कन्स्ट्रक्टर जोड़ सकते हैं? – wulfgarpro
@ wulfgar.pro कोई समस्या नहीं, अभी जोड़ा गया – isNaN1247