组织myapp/routes/*的正确方法

Gab*_*man 29 routes node.js express

使用最新的稳定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() {});
Run Code Online (Sandbox Code Playgroud)

...创建以下文件:

routes/
??? index.js
??? main.js
??? users.js
Run Code Online (Sandbox Code Playgroud)

然后,在routes/index.js里面:

require('./main');
require('./users');
Run Code Online (Sandbox Code Playgroud)

对于每个新的相关路由组,在routes /中创建一个新文件,并从routes/index.js中输入require().将main.js用于不适合其他文件的路由.

Tim*_*ple 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);
    });
}
Run Code Online (Sandbox Code Playgroud)

我在应用程序加载时调用它,然后需要routePath中的所有文件.每条路线的设置如下:

module.exports = function(app) {
    app.get('/', function(req, res) {
        res.render('index', {
            title: 'Express'
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

要添加更多路由,您现在要做的就是在routePath目录中添加一个新文件.