node.js - run - http.createServer(aplicación) v. http.Server(aplicación)
run node js app (1)
En la página web de socket.io, Get Started: Chat application
, que se encuentra aquí:
http://socket.io/get-started/chat/
hay este código:
var app = require(''express'')();
var http = require(''http'').Server(app);
que podría ser reescrito un poco más claramente así:
var express = require(''express'');
var http = require(''http'');
var app = express();
var server = http.Server(app);
El ejemplo de socket.io usa http.Server () para crear un servidor. Sin embargo, los documentos express para app.listen() muestran un ejemplo donde el servidor se crea usando http.createServer(app)
:
app.listen ()
Enlace y escuche las conexiones en el host y puerto dados. Este método es idéntico al http.Server # node () del nodo.
var express = require(''express''); var app = express(); app.listen(3000);
La aplicación devuelta por express () es, de hecho, una función de JavaScript, diseñada para pasarla a los servidores HTTP del nodo como una devolución de llamada para manejar las solicitudes. Esto le permite proporcionar versiones HTTP y HTTPS de su aplicación con la misma base de código fácilmente, ya que la aplicación no hereda de éstas (es simplemente una devolución de llamada):
var express = require(''express''); var https = require(''https''); var http = require(''http''); var app = express(); http.createServer(app).listen(80); https.createServer(options, app).listen(443);
El método app.listen () es un método conveniente para lo siguiente (si desea usar HTTPS o proporcionar ambos, use la técnica anterior):
app.listen = function(){ var server = http.createServer(this); return server.listen.apply(server, arguments); };
¿Cuál es la diferencia entre http.createServer(app)
y http.Server(app)
?? Los documentos http no son de ayuda.
No hay diferencia. http.createServer()
solo hace una cosa: llama a http.Server()
internamente y devuelve la instancia resultante .