8

昨夜、Windows 7 をダンプし、ハード ドライバーをフォーマットして Linux ベースのオペレーティング システムに移植しました。純粋にNode.JSの使用を開始したかったからです。

だから私はNode.JSをインストールし、httpサーバーとソケットなどのいくつかのテストを行いました.

私がやりたいことは、MVC フレームワークと緊密に統合された HTTP サーバーを構築することですが、すべてを始める前に、Node.js で効率的に構築する方法を学ぶ必要があります。

たとえば、フレームワークとしての 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();

init ファイルは主な作業であり、システムの他のすべての領域に実行、停止などを指示するものです。

libs に呼び出されたファイルがserverhandler.js,あり、これは init.js に必要です。次にサーバーを作成し、コールバックをServerHandler.Listener. 誰がリクエストをリッスンし、ファイルがパブリックディレクトリに存在するかどうかを確認し、存在する場合はチャンクを読み取って送り返します。

公開されているファイルが見つからない場合は、Route.Create("/path?params"); を使用してルートを作成します。これにより、Controller、Method、Params の 3 つの要素が uri から削除され、コントローラー ファイルが存在する場合は読み込まれます。

私は次のようにエラーページをスローするアプローチを採用しました:

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

これが、Node.js を使い始める人に役立つことを願っています。

4

1 に答える 1

4

http://dailyjs.com/2010/11/01/node-tutorial/を見てください 。かなり関連性があります。

現在のモジュールも見てみることをお勧めします https://github.com/joyent/node/wiki/modules 、特に興味のある分野のプロジェクトのコードを読むことをお勧めします。ミドルウェア、ルーティング、およびモジュール ローダー。

于 2011-03-03T12:03:12.633 に答える