Сгенерированное приложение NodeJS Express не имеет "прослушивания"?

Вопрос:

При запуске express генерируемый app.js является следующим: (на дату этого сообщения)

    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 или некоторый такой сценарий запуска. Это будет иметь “отсутствующий” оператор прослушивания.

Оцените статью
TechArks.Ru
Добавить комментарий