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'));
});
War es hilfreich?

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 :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top