2010-09-15 121 views
7

我想知道在node.js之上創建框架需要什麼步驟。 我相信這可以成爲學習的好方法,這就是我爲什麼這麼做的原因!關於在JavaScript中創建微框架的建議

我一直在檢查其他微框架和更大的框架,但我無法理解從哪裏開始。我希望你對此有所建議。謝謝。

編輯:像Sinatra,Merb,Rails一樣的MVC框架。

+0

的微架構做什麼? – MooGoo 2010-09-15 17:32:36

+0

@MooGoo:因爲他在說服務器端代碼,所以它可能是一個MVC或MVVM框架。像Rails或Django或Catalyst。 – slebetman 2010-09-15 18:38:27

+0

是的,這是正確的。 – donald 2010-09-15 18:39:24

回答

5

對於MVC框架,基本概念去這樣的事情(原諒簡單):

var view = 'I say, "{{first}} {{second}}".'; 
var model = { 
    first: 'hello', 
    second: function(){ 
     return 'world'; 
    } 
}; 

for(item in model){  
    var regex = new RegExp('{{' + item + '}}', 'gi'); 
    if(typeof(item) == 'function') 
     view = view.replace(regex, model[item]()); 
    else 
     view = view.replace(regex, model[item]); 
} 
console.log(view); 

開始儘可能的簡單,並添加小的改進:

  • 商店瀏覽/模板作爲文件。這爲您提供了一個使用node.js的異步文件I/O的機會。
  • 增加支持更復雜的模型 - 重複項目/陣列,包含對象的對象
  • 爲模板添加支持模板內
  • 從外部數據源獲取您的模型。 CouchDB可能很有趣。
  • 添加適當的控制器 - 這些對象應該知道哪些型號與觀點去以及如何將它們拼接在一起
  • 地圖您的Http請求的URL的控制器和動作 - /人/ 55可能與您的數據獲取ID爲55人版本庫/ person/add可能會調出一個用戶界面來添加一個人 - 兩者都使用一個人員控制器,並顯示相應的操作視圖。

看一看mustache.js爲小模板引擎。注意他們的術語與我的例子和代碼不同。我稱之爲視圖,他們稱模板和我稱之爲模型,他們稱視圖。這是一件小事,但可能令人困惑。

其他資源:

+0

哇,非常好的評論!你有什麼資源可以幫助我更好地學習這些嗎?如果沒有任何JavaScript相關,也許與Sinatra有關,Rails可能會有所幫助!謝謝Corbin。 – donald 2010-09-15 22:08:08

+0

@donald - 添加了一個大型的節點模塊列表。玩的開心。 – 2010-09-15 22:21:01