使用最新的稳定node.js并从npm表达,我创建了我的第一个快速项目。
默认生成的应用程序定义routes / index.js,其中包含呈现默认索引视图的单个路径。
我立即假设我可以将其他.js文件添加到routes /文件夹中,它们将被包含在内。这并没有成功。只包含routes / index.js。添加其他路由到routes / index.js工作正常。
按照快速项目生成器提供的结构,定义和组织Express路由的正确方法是什么?
答案,解释DailyJS上的文章:
考虑以下路线:
app.get('/', function() {});
app.get('/users', function() {});
app.get('/users/:id', function() {});
...创建以下文件:
routes/
├── index.js
├── main.js
└── users.js
然后,在routes / index.js中:
require('./main');
require('./users');
对于每个新的相关路由组,在routes /中创建一个新文件,并从routes / index.js中创建require()。将main.js用于不适合其他文件的路由。
答案 0 :(得分:19)
我更喜欢动态加载路由,而不是每次添加新路由文件时都必须手动添加其他需求。这是我目前正在使用的。
var fs = require('fs');
module.exports = function(app) {
console.log('Loading routes from: ' + app.settings.routePath);
fs.readdirSync(app.settings.routePath).forEach(function(file) {
var route = app.settings.routePath + file.substr(0, file.indexOf('.'));
console.log('Adding route:' + route);
require(route)(app);
});
}
我在应用程序加载时调用它,然后需要routePath中的所有文件。每条路线的设置如下:
module.exports = function(app) {
app.get('/', function(req, res) {
res.render('index', {
title: 'Express'
});
});
}
要添加更多路由,您现在要做的就是将新文件添加到routePath目录。