2012-09-17 78 views
0

我對node.js很陌生,對Javascript很新穎(我不會用jQuery將jQuery作爲簡單的動畫)。作爲網絡開發人員,我正在從PHP/MySQL轉移到Express/mongo。Express.js路由在一個服務器上運行的多個項目

我喜歡東西整潔的想法 - 只要在性能上沒有明顯的損失。由於節點如此迅速地發展,我發現很難找到針對當前版本節點的路由方法的具體意見和答案(大多數帖子我發現似乎是不相關的,並且比2年前更長)。

|- app.js 
    |- routes 
     |- blog.js 

我使用blog.js作爲網關的所有博客相關的東西。這包括使用函數註冊GET和POST請求以及處理頁面呈現。

這一切都打了一個電話。

我app.js有以下幾點:

... //basic express installation 
var db = ... //mongoose database connection 

require('./routes/blog')(app, db, '/blog'); //starts the blog up 

blog.js看起來是這樣的:

var db = null; 
var basedir = null; 

module.exports = function(app, _db, _basedir){ 
    db = _db; 
    basedir = _basedir; 

    app.get (basedir, pages.home); 
    app.get (basedir + '/show/:id', pages.getBlog); 

    /*app.get(basedir + '/*', function(req, res) { 
    res.redirect(basedir); 
    });*/ 
}; 

var pages = { 
     home : function(req, res) { 
     // whatever 
    } 

    , getBlog : function(req, res) { 
     // whatever 
    } 
} 

我知道這個作品 - 我的問題是,如果這是常規?這是不是推薦的東西?它是否浪費記憶?爲什麼人們在app.js中放置app.gets而不是外部文件?目前主要使用的路由方法是什麼(我在同一臺服務器上開發多個小應用程序,因此我希望我的app.js儘可能少)。

回答

1

你所描述的方式是完全可以接受的,在我看來,首選只有一個大的app.js文件與所有的路線和其他一切。

許多人對代碼的分離比您所概述的要多得多,特別是在嘗試遵循MVC和MVC模式時。

例如,這是我一直在研究的一個樣板項目,甚至可能在分離時有點過分。這不是一個完成的產品,只是我在玩的東西,從其他樣板,框架等中獲得了一些我喜歡的東西。從那時起我學到了一些東西,我可能會在某個時候調整它。

NemoJS - My node/express/mongoose/jade/stylus/twitter_bstrap boilerplate project

有一點要記住的是你越獨立,它可以更加難以追查問題。雖然沒有足夠的理由不停留組織。這基本上是我們的目標,對吧?

+0

感謝您的回覆;正如我所提到的,我的很多搜索結果都是在幾年前;節點,快遞和他們的用戶都走過了幾英里。很高興看到我並沒有錯! – darioml

相關問題