Was ist der Unterschied zwischen:Node.js http.Server und http.createServer, was ist der Unterschied?
http.Server (function (req, res) {});
und
http.createServer (function (req, res) {});
Was ist der Unterschied zwischen:Node.js http.Server und http.createServer, was ist der Unterschied?
http.Server (function (req, res) {});
und
http.createServer (function (req, res) {});
Basierend auf den Quellcode NodeJS zu sein (Auszug unten), createServer
nur eine Hilfsmethode ist eine Server
zu instanziiert.
Auszug aus line 1674 of http.js.
exports.Server = Server;
exports.createServer = function(requestListener) {
return new Server(requestListener);
};
So also der einzige wahre Unterschied in dem beide Code-Snippets Sie in Ihrer ursprünglichen Frage erwähnt haben, ist, dass Sie nicht das new
Schlüsselwort.
Aus Gründen der Klarheit der Server
Konstruktor ist als (zum Zeitpunkt der Post - 2012.12.13) folgt:
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);
Nach the docs, so scheint es
http.createServer = function (requestListener) {
var ser = new http.Server();
ser.addListener(requestListener);
return ser;
};
Danke, ich so viel gedacht. Im Interesse der Lesbarkeit könnten Sie den 'Server'-Konstruktor zu Ihrem Codebeispiel hinzufügen? – wulfgarpro
@ wulfgar.pro Kein Problem, jetzt hinzugefügt – isNaN1247