学习node.js / express.js:与bin / www有什么关系?

时间:2016-04-15 04:11:09

标签: node.js express

我见过像this这样的express.js教程,它们从头开始使用自己的app.js文件,并使用快速生成器放弃。

我的问题:对于那些试图掌握如何使用这些工具并制作基本Web应用程序的初学者,我应该关注bin/www还是应该在app.js中定义端口?< / p>

我目前在bin/www中理解的唯一功能是设置端口。快速生成器是否只是膨胀了边缘案例功能,这对初学者来说太过分了?

2 个答案:

答案 0 :(得分:38)

这是原因,由快速维护人员简洁地说明:

  

因此,您可以从外部文件中获取(&#39; ./ app&#39;)并获取快递   没有在任何端口上监听的应用程序(想想单元测试等)。

source

答案 1 :(得分:25)

<强> app.js

  • 包含所有中间件(正文解析器,摩根等)和路由。
  • 它最后导出app对象。

<强> WWW

  • 这里创建一个httpServer并将app作为处理程序
  • 传递

var server = http.createServer(app);

  • 此外还设置端口server.listen(port);
  • 还设置在启动服务器时出错的函数:server.on('error', onError);

解释所以,基本上它会从app.js中删除所有创建和启动服务器代码,让您只关注应用程序逻辑部分。 注意:如果您在package.json文件中看到,请注意:

"scripts": {
  "start": "node ./bin/www"
}

这意味着如果您输入终端npm start,它将自动启动./bin/www文件。