unterschied zwischen Knoten-HTTP und Express-Listening
Frage
Ich bin neu bei Node und Express.Ich bin auf zwei Möglichkeiten gestoßen, eine Express-App zu erstellen, die einen bestimmten TCP-Port überwacht, was, soweit ich das beurteilen kann, das gleiche Ergebnis liefert.Könnte bitte jemand etwas Licht auf den Unterschied zu diesen werfen, falls es welche gibt...Es ist die hören Funktion
Methode 1 - nur das Express-Modul verwenden:
var express = require('express');
var port = 8080;
var app = express();
app.set('port', port);
...
// different listen method
app.listen(app.get('port'), function(){
console.log('now listening on port ' + app.get('port'));
});
Methode 2 - Verwenden der Express- und http-Module:
var http = require('http'),
express = require('express');
var port = 8080;
var app = express();
app.set('port', port);
...
// different listen method
http.createServer(app).listen(app.get('port'), function(){
console.log('now listening on port ' + app.get('port'));
});
Lösung
Werfen Sie einen Blick auf die Definition von app.listen
im Express-Quellcode: https://github.com/visionmedia/express/blob/9e6b881f8566f26f2d2ea017657455ec7c674ad6/lib/application.js#L524-L548
app.listen = function(){
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
Es ist nur eine bequeme Methode, um das zu tun, was Sie oben in "Methode 2" definiert haben.(Hier ist, wie apply()
funktioniert, wenn Sie eine Auffrischung benötigen.)
Also machen sie das Gleiche :)