Я создал приложение nodeJS, которому необходимо создать сервер, который работает нормально, как в файле server.js:
http.createServer(app).listen(app.get('port'), function (err) {
if (err) {
console.error(err);
} else {
runProcess();
console.log('Server listening on port ' + app.get('port'));
}
});
Теперь мне нужно передать этот сервер в какой-то файл, а мое приложение построено следующим образом:
server.js
app.js
routes.js
action.js
Итак, я сделал это быстро, как показано ниже: Есть ли лучший способ сделать это?
Это server.js после изменений:
var server = http.createServer(app);
app.setServer(server);
server.createServer(app).listen(app.get('port'), function (err) {
if (err) {
console.error(err);
} else {
runProcess();
console.log('Server listening on port ' + app.get('port'));
}
});
В app.js у меня есть файл маршрутизатора, и мне понравилось следующее:
app.use('/', routes.router, function (req, res, next) {
next();
});
app.setServer = function(http) {
routes.setServer(http);
}
module.exports = app;
Этот код я помещаю в файл router.js:
module.exports = {
router: applicationRouters,
setServer: function(http) {
//here I set server to the file action.js
action.setServer(http);
}
}
И в действии js я сделал следующее:
module.exports = {
setServer: function(http) {
...
Мне нужно передать http между слоями и не использовать его, как требуется, в другом файле/модуле. Как это сделать в node.js?