Это может быть очень простой вопрос, но я просто не понимаю. В чем разница между созданием приложения с использованием Express.js и запуском прослушивания приложения через порт 1234, например:
var express = require('express');
var app = express();
//app.configure, app.use etc
app.listen(1234);
и добавив 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);
Какая разница?
Если я перейду к http://localhost:1234
, то получу такой же вывод.
Ответы:
Вторая форма (создание сервера HTTP самостоятельно, а не создание Express для вас) полезна, если вы хотите повторно использовать сервер HTTP, например, для запуска
socket.io
в том же экземпляре сервера HTTP:Однако
app.listen()
также возвращает экземпляр HTTP-сервера, поэтому, немного переписав его, вы сможете добиться чего-то похожего, не создавая HTTP-сервер самостоятельно:источник
===
сравнение не получится;) Если вы мне не верите, всегда есть источник .var socketio = require('socket.io')
на третьей линии , необходимой в вашем переписывания?app.listen()
потому что это требует меньше кода. Поскольку это только очень тонкий слой поверх негоserver.listen()
и он возвращает экземпляр сервера, обычно нет причин создавать отдельный экземпляр HTTP-сервера вручную.Существует еще одно различие в использовании приложения и прослушивании http-сервера, когда вы хотите настроить https-сервер.
Для настройки https вам понадобится код ниже:
Приложение из Express вернет только http-сервер, вы не можете установить его в Express, поэтому вам нужно будет использовать команду https server
источник
Просто из-за пунктуальности и немного расширим Тим ответ.
Из официальной документации :
источник
express/lib/appplication.js
и не более чем ярлык для создания http-сервера узла.Я пришел с тем же вопросом, но после Google, я обнаружил, что нет большой разницы :)
Из Github
Если вы хотите создать сервер HTTP и HTTPS, вы можете сделать это с модулями «http» и «https», как показано здесь.
Также, если вы хотите работать с socket.io, посмотрите их пример.
Смотрите это
Я предпочитаю
app.listen()
:)источник
Express - это, по сути, оболочка модуля http, которая создана для удобства разработчиков таким образом, что ..
источник