Экспресс является обработчиком запросов для HTTP-сервера. Для запуска требуется HTTP-сервер. Вы можете либо создать самостоятельно, а затем передать app
в качестве обработчика запросов для того или Экспресс может создать свой собственный сервер HTTP:
import Express from 'express';
const app = new Express();
app.listen(80);
Но, только так вы в полной мере понять, что здесь происходит. Если вы используете app.listen()
, все это делает это (как показано с the Express code):
app.listen = function listen() {
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
который просто создает свой собственный сервер HTTP ванили и затем вызвать .listen()
на нем.
Если вы используете только простой сервер HTTP ванили, то это экономит вам код, чтобы иметь Экспресс создать его для вас, так что нет действительно никакой пользы для его создания для себя. Если вы хотите создать сервер с некоторыми специальными параметрами или конфигурациями или если вы хотите создать HTTPS-сервер, то вы должны создать его самостоятельно, а затем настроить его с помощью обработчика запросов Express, поскольку Express создает только простой HTTP-сервер ванили, если вы попросите его создать его самостоятельно. Итак, создайте его самостоятельно, если вам нужно создать его с помощью специальных опций.
Практика создания отдельного «http.Server» очень распространена (например, пример кода ['socket.io'] (http://socket.io/docs/#using-with-express-3/4) делает это также). Я думаю, что многие видят это и думают, что так оно и должно быть. – robertklep
@robertklep - Нет ничего плохого в создании собственного HTTP-сервера вручную. Экспресс просто предлагает ярлык, который сделает это за вас. – jfriend00
Спасибо, что помогает. Итак, в этом случае избыточно явно создать http-сервер? – Paulos3000