Nodejs-express-framework
Node.js-Express Framework
エクスプレスの概要
Expressは、Webおよびモバイルアプリケーションを開発するための堅牢な機能セットを提供する、最小限で柔軟なNode.js Webアプリケーションフレームワークです。 NodeベースのWebアプリケーションの迅速な開発を促進します。 以下は、Expressフレームワークのコア機能の一部です-
- HTTPリクエストに応答するミドルウェアを設定できます。
- HTTPメソッドとURLに基づいてさまざまなアクションを実行するために使用されるルーティングテーブルを定義します。
- 引数をテンプレートに渡すことに基づいて、HTMLページを動的にレンダリングできます。
Expressのインストール
まず、NPMを使用してExpressフレームワークをグローバルにインストールし、ノードターミナルを使用してWebアプリケーションを作成できるようにします。
上記のコマンドは、インストールをローカルに node_modules ディレクトリに保存し、node_modules内にexpressというディレクトリを作成します。 あなたはエクスプレスと一緒に次の重要なモジュールをインストールする必要があります-
- body-parser -これは、JSON、Raw、Text、およびURLエンコードされたフォームデータを処理するためのnode.jsミドルウェアです。
- cookie-parser -Cookieヘッダーを解析し、req.cookiesにCookie名をキーとするオブジェクトを入力します。
- multer -これは、multipart/form-dataを処理するためのnode.jsミドルウェアです。
Hello worldの例
以下は、サーバーを起動し、ポート8081で接続を待機する非常に基本的なExpressアプリです。 このアプリは、ホームページへのリクエストに対して* Hello World!で応答します。 他のすべてのパスについては、 404 Not Found。*で応答します。
上記のコードをserver.jsという名前のファイルに保存し、次のコマンドで実行します。
次の出力が表示されます-
任意のブラウザーでhttp://127.0.0.1:8081/を開き、次の結果を確認します。
リクエストとレスポンス
Expressアプリケーションは、パラメータが request および response オブジェクトであるコールバック関数を使用します。
- link:/nodejs/nodejs_request_object [リクエストオブジェクト]-リクエストオブジェクトはHTTPリクエストを表し、リクエストクエリ文字列、パラメーター、ボディ、HTTPヘッダーなどのプロパティがあります。
- link:/nodejs/nodejs_response_object [Response Object]-レスポンスオブジェクトは、ExpressアプリがHTTPリクエストを受け取ったときに送信するHTTPレスポンスを表します。
Cookie、セッション、URLなどを含むHTTPリクエストおよびレスポンスに関連する多くの情報を提供する req および res オブジェクトを印刷できます。
基本的なルーティング
ホームページのHTTPリクエストを処理する基本的なアプリケーションを見てきました。 ルーティングとは、特定のエンドポイントに対するクライアントリクエストに対するアプリケーションの応答方法を決定することです。これは、URI(またはパス)および特定のHTTPリクエストメソッド(GET、POSTなど)です。
Hello Worldプログラムを拡張して、より多くの種類のHTTP要求を処理します。
上記のコードをserver.jsという名前のファイルに保存し、次のコマンドで実行します。
次の出力が表示されます-
これで、http://127.0.0.1:8081でさまざまなリクエストを試して、server.jsによって生成された出力を確認できます。 以下は、さまざまなURLに対するさまざまな応答を示すスクリーンショットです。
再び表示される画面http://127.0.0.1:8081/list_user
再び表示される画面http://127.0.0.1:8081/abcd
再び表示される画面http://127.0.0.1:8081/abcdefg
静的ファイルの提供
Expressは、画像、CSS、JavaScriptなどの静的ファイルを提供する組み込みミドルウェア express.static を提供します。
静的アセットを保持するディレクトリの名前を express.static ミドルウェアに渡して、ファイルの直接提供を開始するだけです。 たとえば、画像、CSS、およびJavaScriptファイルをpublicという名前のディレクトリに保存する場合、これを行うことができます-
次のように、いくつかの画像を public/images サブディレクトリに保存します-
「Hello Word」アプリを変更して、静的ファイルを処理する機能を追加しましょう。
上記のコードをserver.jsという名前のファイルに保存し、次のコマンドで実行します。
ブラウザでhttp://127.0.0.1:8081/images/logo.pngを開き、次の結果を確認します。
GETメソッド
次に、HTML FORM GETメソッドを使用して2つの値を渡す簡単な例を示します。 server.js内で process_get ルーターを使用して、この入力を処理します。
上記のコードをインデックスに保存し、server.jsを変更して、ホームページ要求とHTMLフォームによって送信された入力を処理します。
_http://127.0.0.1:8081/index_を使用してHTMLドキュメントにアクセスすると、次のフォームが生成されます-
ファーストネーム:
苗字:
今、あなたは名と姓を入力し、結果を見るために送信ボタンをクリックすることができ、それは次の結果を返すはずです-
POSTメソッド
以下は、HTML FORM POSTメソッドを使用して2つの値を渡す簡単な例です。 server.js内で process_get ルーターを使用して、この入力を処理します。
上記のコードをインデックスに保存し、server.jsを変更して、ホームページ要求とHTMLフォームから送信された入力を処理します。
_http://127.0.0.1:8081/index_を使用してHTMLドキュメントにアクセスすると、次のフォームが生成されます-
ファーストネーム:
苗字:
今、あなたは名と姓を入力し、次の結果を見るために送信ボタンをクリックすることができます-
ファイルアップロード
次のHTMLコードは、ファイルアップローダーフォームを作成します。 このフォームのメソッド属性は POST に設定され、enctype属性は multipart/form-data に設定されます
上記のコードをインデックスに保存し、server.jsを変更して、ホームページのリクエストとファイルのアップロードを処理します。
_http://127.0.0.1:8081/index_を使用してHTMLドキュメントにアクセスすると、次のフォームが生成されます-
クッキー管理
次のミドルウェアオプションを使用して、同じものを処理できるNode.jsサーバーにCookieを送信できます。 以下は、クライアントから送信されたすべてのCookieを印刷する簡単な例です。