Embora essa seja uma pergunta mais antiga, eu tropecei aqui, procurando uma solução para um problema semelhante. Depois de tentar algumas das soluções aqui, acabei indo em uma direção diferente e pensei em adicionar minha solução para qualquer pessoa que acabasse aqui.
No express 4.x, você pode obter uma instância do objeto roteador e importar outro arquivo que contém mais rotas. Você pode até fazer isso recursivamente para que suas rotas importem outras, permitindo criar caminhos de URL fáceis de manter. Por exemplo, se eu já tiver um arquivo de rota separado para o terminal '/ tests' e desejar adicionar um novo conjunto de rotas para '/ tests / automatic', convém dividir essas rotas '/ automatic' em outro arquivo para mantenha meu arquivo '/ test' pequeno e fácil de gerenciar. Também permite agrupar rotas logicamente pelo caminho da URL, o que pode ser realmente conveniente.
Conteúdo de ./app.js:
var express = require('express'),
app = express();
var testRoutes = require('./routes/tests');
// Import my test routes into the path '/test'
app.use('/tests', testRoutes);
Conteúdo de ./routes/tests.js
var express = require('express'),
router = express.Router();
var automatedRoutes = require('./testRoutes/automated');
router
// Add a binding to handle '/test'
.get('/', function(){
// render the /tests view
})
// Import my automated routes into the path '/tests/automated'
// This works because we're already within the '/tests' route so we're simply appending more routes to the '/tests' endpoint
.use('/automated', automatedRoutes);
module.exports = router;
Conteúdo de ./routes/testRoutes/automated.js:
var express = require('express'),
router = express.Router();
router
// Add a binding for '/tests/automated/'
.get('/', function(){
// render the /tests/automated view
})
module.exports = router;