Express.js - app.écouter vs serveur.écouter
Cela peut être une question très simple mais je n'ai tout simplement pas l'obtenir. Quelle est la différence entre la création d'une application à l'aide de Express.js et de démarrer l'application à l'écoute sur le port 1234, par exemple:
var express = require('express');
var app = express();
//app.configure, app.use etc
app.listen(1234);
et l'ajout d'un serveur http:
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
//app.configure, app.use etc
server.listen(1234);
Quelle est la différence?
Si je navigue à http://localhost:1234
, donc j'obtiens le même résultat.
- Demandez moi-même pour un peu de temps... Bonne question!
- Je me rends compte que cette question est vieux, mais je tiens à souligner, createServer a été amortis.
- pouvez-Vous, s'il vous plaît, fournir la preuve?
- Je crois que c'est un peu trompeuse. ExpressJS de createServer() la méthode a été abandonné, mais le Node.js module HTTP utilise encore createServer() et qui n'est pas obsolète.
Vous devez vous connecter pour publier un commentaire.
La deuxième forme (création d'un serveur HTTP vous-même, au lieu de devoir Exprimer en créer un pour vous) est utile si vous souhaitez réutiliser le serveur HTTP, par exemple pour exécuter
socket.io
au sein du même serveur HTTP instance:Cependant,
app.listen()
renvoie également le serveur HTTP instance, donc, avec un peu de réécriture que vous pouvez obtenir quelque chose de similaire sans la création d'un serveur HTTP de vous-même:===
comparaison serait un échec 😉 Si vous ne me croyez pas, il y a toujours la source.var socketio = require('socket.io')
sur la troisième ligne nécessaire dans votre réécrire?https
,ce que je dois faire?app.listen()
, car il nécessite moins de code. Puisque c'est seulement une couche très mince sur le dessus deserver.listen()
, et il retourne l'instance de serveur, il n'y a généralement pas de raison de créer un serveur HTTP instance manuellement.Il y a une différence d'utilisation de l'application et de l'écoute de serveur http, c'est quand vous voulez pour la configuration de serveur https
Pour la configuration https, vous devez le code ci-dessous:
L'application à partir de l'express sera de retour http serveur uniquement, vous ne pouvez pas définir dans l'express, de sorte que vous aurez besoin d'utiliser le serveur https commande
Juste pour la ponctualité but et d'étendre un peu Tim réponse.
De la documentation officielle:
express/lib/appplication.js
et rien de plus que des raccourcis pour créer le nœud du serveur http.Express est en fait un wrapper de module http qui est créé pour la facilité de la part des développeurs de telle manière que..
Je suis venu avec la même question, mais d'après google, j'ai trouvé il n'y a pas de grande différence 🙂
De Github
Si vous souhaitez créer à la fois un HTTP et HTTPS serveur, vous pouvez le faire avec le "http" et "https" modules comme indiqué ici.
Aussi, si vous souhaitez travailler avec la prise.io voir leur exemple
Voir cette
Je préfère
app.listen()
🙂