2015-09-14 36 views
0

我很困惑。所以,如果我用一饮而尽,开发服务器,它有一个app.listen():node命令vs 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()自动做一个“节点”命令来启动koa网络服务器?如果我使用gulp-develop-server并指定server.listen,是不是在为节点做2 server.listen()?

只是试图了解这里的基础知识,并不明白为什么任何人都会手动输入'node [file with .listen]'文件。我没有手动做这件事,server.listen()显然在我的app.js上使用'node'命令。

回答

1

您的gulpfile是一个Node脚本。所以当你运行gulp server:start你正在执行一个Node应用程序时,gulp命令基本上是node加上一些额外的功能。

gulp-develop-server的工作方式是将附加的Node应用程序作为子进程运行。 server.listen基本上只是告诉gulp-develop-server要运行的脚本。

命名有点令人困惑,但实质上发生了什么:您的机器上运行了2个节点应用程序(您可以看到一个,后台有一个),但只有一个服务器。