Совершенно не понимаю зачем городить огород с оборачиванием в функцию предложенный
Александр Косицын . Этот способ скорее подходит для модулей написанных для браузера, с целью изолировать их пространство имен.
Предлагаю не заморачиваться, и поступить так,
как показано в оф.доке express-а:
файл с кодом роутераvar express = require('express');
var router = express.Router();
// middleware that is specific to this router
router.use(function timeLog(req, res, next) {
console.log('Time: ', Date.now());
next();
});
// define the home page route
router.get('/', function(req, res) {
res.send('Birds home page');
});
// define the about route
router.get('/about', function(req, res) {
res.send('About birds');
});
module.exports = router;
основной файл приложения...
var birds = require('./birds');
...
app.use('/birds', birds);
...
PS: при этом имена и местоположение файлов роутеров весьма условная вещь. По факту вы можете давать им любые имена и укладывать в любые папки, главное не запутайтесь при их подключении. Например некий роутер отвечающий за чат лежит в папке `/routers/chat` и называется `main.js`. Чтобы его подключить, нам надо будет написать что то типа:
...
var chat = require('./routers/chat/main.js');
...
app.use('/chat, chat);
...