Команда узла против app.listen()

Я не совсем понимаю. Поэтому, если я использую gulp-develop-server, он получает app.listen ():

gulpfile.js

config.server.path is set to './app,js'

server = require('gulp-develop-server');

gulp.task('default', ['server:start'], function(){
});

gulp.task('server:start', function() {
    server.listen({ path: config.server.path});
});

Мой app.js имеет это:

var koa = require('koa')();

koa.listen(config.server.port, function(){
    console.log('Koa app is listening on port ' + config.server.port);
});

поэтому я пытаюсь лучше понять, как запускается узел. Я вижу, как люди упоминают, что делают это вручную, например, "node app.js" Так не выполняет ли koa.listen() автоматически команду "node" для запуска веб-сервера koa? Если я использую gulp-develop-server и указываю server.listen, разве это не делает 2 server.listen() для узла?

Просто пытаюсь понять основы здесь и не могу понять, почему кто-то вручную вводит "node [file with .listen]" вручную. Я не делаю этого вручную, и server.listen (), очевидно, использует команду 'node' в моем app.js.

1 ответ

Решение

Ваш gulpfile - это скрипт Node. Поэтому, когда вы бежите gulp server:start вы выполняете приложение Node, gulp командование по сути node плюс некоторая дополнительная функциональность.

Gulp-development-server работает так, как будто он запускает дополнительное приложение Node как дочерний процесс. server.listen в основном просто говорит gulp-develop-server, какой скрипт запускать.

Присвоение имен немного запутанно, но, по сути, происходит следующее: на вашем компьютере запущено 2 приложения Node (одно, которое вы видите, и одно в фоновом режиме), но только 1 сервер.

Другие вопросы по тегам