簡體   English   中英

使用Node.JS

[英]Working with Node.JS

昨晚我轉儲了Windows 7,並格式化了硬盤驅動器以移植到基於Linux的操作系統,這純粹是出於我想開始使用Node.JS的原因。

所以我已經安裝了Node.JS並做了一些測試,包括http服務器和套接字等。

我想做的是構建一個與MVC框架緊密集成的HTTP Server,但是在開始所有這些之前,我需要學習如何在Node中高效構建。

例如,在PHP作為框架的情況下,我將創建一個引導加載系統以加載所有基類等,然后觸發事件系統以准備開始附加回調。

我將繼續處理請求等,直到生成輸出,然后將其發送到將處理標頭等的輸出處理程序

但是Node為此提供了一個全新的環境,我想知道在Node中構建系統的最佳實踐。

我正在尋找的信息更多地與設計結構有關,而不是與應用程序的實際編碼,如何在庫中加載庫,在何處加載庫等有關。

任何幫助表示贊賞。


到目前為止,我的WebApplication運行得很好,我已經很傳統地構建了我的應用程序,並添加了一些程序。

我已經開始創建一個目錄結構,如下所示:

<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();

初始化文件是主要工作,它告訴系統所有其他區域運行,停止等。

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

如果在公共場所未找到文件,則將使用Route.Create(“ / path?params”)創建一條路由; 會從uri中阻止3個元素(控制器,方法,參數),然后如果存在則加載控制器文件。

我采用了拋出錯誤頁面的方法,如下所示:

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

希望這有助於某些人開始使用Node。

看看http://dailyjs.com/2010/11/01/node-tutorial/ ,這很相關。

我建議也查看當前的模塊https://github.com/joyent/node/wiki/modules並閱讀您感興趣的領域中的任何項目的代碼,尤其是。 中間件,路由和模塊加載器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM