昨夜、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 を使い始める人に役立つことを願っています。