生成的NodeJS Express应用程序不“听”?

在运行express ,生成的app.js如下所示:(在这篇文章的date)

  var express = require('express'); var path = require('path'); var favicon = require('static-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(favicon()); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded()); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); app.use('/users', users); app.use(function(req, res, next) { ... }); if (app.get('env') === 'development') { ... } app.use(function(err, req, res, next) { ... }); module.exports = app; 

为了简单,我删除了评论。

我的问题很简单:
我在网站,博客和文档中看到了很多nodeJS的例子,他们使用下面的一个例子:

  require('http').createServer(app).listen(3000); 

要么

  app.listen(3000); 

如果我执行我生成的快速应用程序( npm start ),它运行。 我可以通过浏览器导航到localhost:3000,并且正在服务。 那么… 如何使用listen(port)

我问这个是因为我喜欢对事物有完全的控制。
另外,模块的一些例子使用listen ,例如。 模块Sequelize

文章:“使用Express.JS”,
链接: http : //sequelizejs.com/articles/express ,

 app.js ------ db .sequelize .sync({ force: true }) .complete(function(err) { if (err) { throw err[0] } else { http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')) }) } }) 

这让我觉得我应该在开始收听之前进行同步。
如果我不使用listen ,并让它自动监听(如生成的代码所做的那样),那么我是否会因为同时同步监听而遇到麻烦?

如果你看一下package.json文件,你可能会发现它运行/ bin / www或者一些这样的启动脚本。 这将有“失踪”倾听声明。