2015-08-19 43 views
1

我是來自PHP的NodeJS和Express的新手。我一直在關注如何使用Express構建Web應用程序的在線教程,它一直令人大開眼界。所以我決定只用JavaScript來開發一個項目。問題是在Express中添加了一些路由定義後,我無法跟蹤我的Express路線,並擔心隨着時間的推移它會變得更大。目前我有近45行(是的,我有很多路線,有些服務HTML模板文件,其他只是爲我的Angular前端返回JSON)。有沒有更好的方法來處理它,然後它失控?維護和組織ExpressJS路線

+0

? – shanks

回答

0

如果您使用的快遞版本4,我寫了一個模塊來處理在清潔少臃腫雙向航線。結賬Exroute Module如果它符合您的當前需求,請提供一些反饋,如果它不。

+0

哇,真的很方便。雖然它有點自以爲是,但它確實適合我的用例。我喜歡這樣一個事實,即我可以將所有路徑文件都轉儲到一個文件夾中,並且在app.js中有一行代碼完成所有工作。對不起,我不能upvote這雖然,但榮譽;) – Methradeth

2

組織路線的一種可能方式是基於功能的路線組,然後爲這些組創建單獨的模塊,然後將這些模塊導入主應用文件(app.js或server.js)。例如,我正在開發一個具有交易功能,現金存款功能以及其他一些常見任務的項目。所以,我爲這些路由創建了不同的模塊,並將它們放在一個名爲routes的獨立目錄中。

例如,我有一個模塊爲所有的常見任務命名site.js。

module.exports = function(express,app,passport,router){ 

    router.get('/auth/facebook',passport.authenticate('facebook')); 
    //other commin routes 

}; 

在我的app.js文件中,我聲明瞭路由器,然後傳遞給包含路由的模塊。

您正在使用什麼版本的快遞
var router = express.Router(); 
app.use('/',router); 

require('./routes/site.js')(express,app,passport,router); 
+0

我已經嘗試了這種方法,但這正是我想要避免。它確實有一點幫助,但是Shanks的模塊只需要我的app.js中的一行代碼,但是謝謝你的建議。非常感激!對不起,我不能upvote你的答案,我是新來的。 – Methradeth