2011-03-03 39 views
8

昨晚我傾倒的Windows 7和格式化我的硬盤驅動器移植到一個基於Linux的操作系統,純粹是爲了我想開始與Node.js的用Node.js的工作

工作的原因,所以我已安裝的Node.js並做了一些測試的東西,HTTP服務器和插座等

我想這樣做的是建立一個緊密與MVC框架intergrated一個HTTP服務器,但我得到前開始學習如何在Node中高效構建所需的一切。

例如在PHP中作爲我的框架,我會創建一個引導加載系統來加載所有基類等,然後我會啓動我的事件系統準備開始附加回調。

我會繼續處理該請求等,直到生成的輸出,然後被髮送到將處理頭等等等等

但對於這個節點Sa全新的環境,並即時知道的最好的輸出處理程序在Node中構建系統的實踐。

的信息即時尋找更多的事情要做的設計結構,而不是應用程序的實際編碼,如何加載lib目錄下加載庫,等等等等

任何幫助表示讚賞。


到目前爲止,我的Web應用程序很好,我已經建立了我的應用程序相當傳統和一點程序。

什麼,我已經開始了創造像這樣的目錄結構:

<root> 
    startup.js 
    /public/ 
     favicon.ico 
     /images/ 
     /stylesheets/ 
     /javascripts/ 
    /system/ 
     init.js 
     config.js 
     /libs/ 
      /exceptions/ 
       http.js 
       server.js 
    /application/ 
     /views/ 
      /_override/ 
       /errors/ 
        generic.view 
      /partials/ 
       sidebar.voew 
      index.view 
     /controllers/ 
      index.js 
     /models/ 
      users.js 

這個目錄結構最喜歡的是基於MVC的Web應用程序在那裏所以使用這種方法我感覺很舒服。

啓動文件什麼的節點作爲切入點,node startup &執行的,看起來像這樣:

/* 
    * Header of t he file, Copyright etc 
*/ 

var _Intitialize = require("./system/init.js"); 

//Displays the command line header, title, copyright etc 
_Intitialize.DisplayCommandLineHeader(); 

//Check the enviroment, Permissions, Ports etc 
_Intitialize.CheckEnviroment(); 

//Start the server and listen the port. 
_Initialize.StartServer(); 

的init文件是主要的工作,它是什麼講述了系統的所有其他領域的運行,停止等

我有一個名爲serverhandler.js,庫中的文件,這是init.js所需的,然後我創建一個服務器並將回調分配給ServerHandler.Listener。然後,誰監聽請求,檢查文件是否存在於公共目錄中,如果存在,則會讀取塊併發回。

如果在公共中沒有找到文件,它會使用Route.Create(「/ path?params」)創建一個路徑。這會阻止uri中的3個元素,Controller,Method,Params,然後控制器文件被加載(如果存在)。

我已經採取了就扔的錯誤頁面,像這樣的方法:

if(!FileSystem.exists(RequiredPath)) 
{ 
    throw new HTTPExceptions.FileNotFound(); 
} 

希望這有助於在節點中的某些人開始。

+12

+1傾倒的windows7 – macarthy 2011-03-03 12:03:38

+1

是的即時通訊與Ubuntu非常滿意爲止:) – RobertPitt 2011-03-03 12:59:57

+0

堅持你的win7在一個虛擬的盒子,容易死人 – macarthy 2011-03-03 14:44:46

回答