2012-01-27 100 views
28

使用最新的穩定node.js並從npm表達,我創建了我的第一個快速項目。正確的方式來組織myapp/routes/*

默認生成的應用程序定義routes/index.js,其中包含呈現默認索引視圖的單個路由。

我立即假設我可以添加其他.js文件到路線/文件夾,它們將被包括在內。這並沒有出現。只包含routes/index.js。將其他路線添加到routes/index.js工作正常。

根據快遞項目生成器提供的結構,定義和組織快遞路線的正確方法是什麼?


答案,釋義在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。

回答

18

我更喜歡動態加載路由,而不必手動添加另一個需要每次添加新的路由文件。這是我目前使用的。

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目錄。

+0

是你的'app.js'中的第一個代碼塊還是像'./route/index.js'? – 2015-05-20 15:55:47