Connectを開始します

Jennifer Aniston
リリース: 2025-02-19 08:51:10
オリジナル
170 人が閲覧しました

Connectを開始します

キーテイクアウト

  • Connectは、Node.jsの拡張可能なHTTPサーバーフレームワークであり、開発者はミドルウェアプラグインを使用してモジュラーと再利用可能なコンポーネントを記述できます。これらのプラグインは、リクエストに応じて処理して渡すか、リクエストを直接処理します。
  • ミドルウェアコンポーネントは、要求、応答、および次のパラメーターを受け入れる関数を使用して作成されます。 「次の」パラメーターは、チェーンの次のハンドラーを表します。これらのコンポーネントは、use()関数を使用して接続サーバーで使用されます。
  • 複数のミドルウェアコンポーネントをConnectで使用できます。各コンポーネントは、ロギングリクエストの詳細や応答の提供などの特定の機能を実行します。ミドルウェアの使用の順序は、サーバーに追加されるシーケンスで実行されるため、重要です。
  • connectを使用すると、ウェブサイトの特定のセクションに認証ハンドラーを追加できます。これは、use()関数を使用することで実現されます。これは、ハンドラーが呼び出されるためのrequest.urlのパスとして最初のパラメーターを使用できます。認証ハンドラーは、承認ヘッダーをチェックし、ユーザー名/パスワードペアをデコードし、承認のためにJSONファイルに対してチェックします。
  • モジュラーコンポーネントと再利用可能なコンポーネントを作成する必要がある場合、Connectが最適なソリューションになる可能性があります。ミドルウェアと呼ばれる「プラグイン」を使用して、node.jsの拡張可能なHTTPサーバーフレームワークをミドルウェアコンポーネントは、リクエストを取得してからいくつかの処理を行うプラグインであり、その後、リクエストを処理および終了したり、次のミドルウェアプラグインで渡すことができます。リクエストを処理して次のハンドラーで渡すプラグインは
  • フィルター
  • と呼ばれ、実際にリクエストを処理するものは
プロバイダーと呼ばれます。最初のグループでは、いくつかの例を述べるために、リクエストロギングプラグインまたは認証プラグインを見つけることができます。プロバイダーについては、主にアプリケーションのビジネスロジックの一部になります。 この記事では、node.jsアプリケーションでConnect Middleware Frameworkを開始して使用する方法を確認します。

connect

のセットアップ node.jsの場合、パッケージの依存関係はnpmで行われます。これにより、アプリケーションに必要な依存パッケージを指定して取得できます。 NPMのパッケージ依存関係は、package.jsonというファイルで定義されています。このファイルは手作業で書くことができますが、NPMコマンドを使用して作成することをより良く強くお勧めします。 このタスクを達成するには、次のコマンドを実行します。
$ npm init
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
そして、それが示す質問(パッケージ名など)にエプリー。完了したら、「package.json」ファイルは、以下のコンテンツに似たコンテンツを含むルートフォルダーに表示する必要があります。
<span>{
</span>  <span>"name": "nodejs-connect-demo",
</span>  <span>"version": "1.0.0",
</span>  <span>"description": "Demo on how to use connect framework for Node.js",
</span>  <span>"main": "server.js",
</span>  <span>"scripts": {
</span>    <span>"test": "echo \"Error: no test specified\" && exit 1"
</span>  <span>},
</span>  <span>"repository": {
</span>    <span>"type": "git",
</span>    <span>"url": "https://github.com/abbassoftware/nodejs-connect-demo.git"
</span>  <span>},
</span>  <span>"keywords": [
</span>    <span>"connect"
</span>  <span>],
</span>  <span>"author": "Abbas",
</span>  <span>"license": "",
</span>  <span>"bugs": {
</span>    <span>"url": "https://github.com/abbassoftware/nodejs-connect-demo/issues"
</span>  <span>},
</span>  <span>"homepage": "https://github.com/abbassoftware/nodejs-connect-demo"
</span><span>}</span>
ログイン後にコピー
ログイン後にコピー

このファイルにはすでにプロジェクトに関する情報が含まれていますが、宣言された依存関係はありません。 Connectを依存関係として宣言するには、「Package.json」ファイルに依存関係値を追加し、次のように更新する必要があります。

または、コマンドを実行できます。
<span>{
</span>  <span>...
</span>  <span>"dependencies": {
</span>        <span>"connect": "3.x"
</span>  <span>},
</span>  <span>...
</span><span>}</span>
ログイン後にコピー
この時点で、次のNPMコマンドを実行して、すべての依存関係をダウンロードできます(この場合は接続のみ)。
npm install connect --save
ログイン後にコピー
$ npm install
ログイン後にコピー
「Hello World」コンポーネントを作成して、リクエストに応答します

依存関係が指定されたら、Hello Connect応答を使用してすべてのリクエストに応答するミドルウェアプロバイダーを作成することができます。そのために、node.jsプロジェクトディレクトリに「server.js」ファイルを作成し、次のコードを追加します。

上記のコードでは、最初にnode.js require()関数を使用して接続モジュールをロードし、関数の戻り値を使用してサーバーを作成します。第二に、ミドルウェアコンポーネントを作成します。これは関数に他なりません。これは、3つのパラメーターを使用します。 、応答、次に。次に、チェーンの次のハンドラーを表します。 sayhello()関数は、応答オブジェクトにヘッダーと応答テキストを設定します。その後、使用()関数のおかげでこのミドルウェアコンポーネントを使用します。最後に、サーバーがポート3031で聞くことを許可します。 これで、以下のコマンドを使用して接続アプリを実行できます。

ブラウザをlocalhost:3031に向けると、次のように出力を確認できるはずです。
<span>var connect = require("connect");
</span><span>var app = connect();
</span>
<span>function sayHello(req<span>, res, next</span>) {
</span>    res<span>.setHeader('Content-Type', 'text/plain');
</span>    res<span>.end('Hello Connect');
</span><span>}
</span>
app
   <span>.use(sayHello)
</span>   <span>.listen(3031);
</span>
<span>console.log("Server is listening");</span>
ログイン後にコピー
node server
ログイン後にコピー
リクエストと応答オブジェクトConnectを開始します このセクションでは、前のセクションで述べたリクエスト、応答、および次のパラメーターを掘り下げます。リクエストオブジェクトは、着信リクエストに関する詳細を保持します。リクエストオブジェクトの最も重要な情報のいくつかは次のとおりです。
  • メソッド:リクエストのタイプが含まれています:取得、投稿など。
  • URL:リクエストの完全なURLが含まれています。このURLを解析して、GETリクエストのクエリパラメーターを取得できます。
  • ヘッダー:リクエストヘッダーに使用できるプロパティです。
  • 応答オブジェクトは、送信される応答を保持します。アプリケーションに応じて、ヘッダーとデータを追加できます。応答オブジェクトのいくつかの重要な関数は次のとおりです
setheader():このメソッドは、応答にヘッダーを追加します。

removeheader():このメソッドは、応答へのヘッダーを削除します。

    write():応答オブジェクトへの部分的な応答を書くと便利です。
  • end():応答の終了をマークするために使用される方法です。
  • connect
  • で複数のミドルウェアコンポーネントを使用しています 最後のセクションでは、すべてのリクエストに「Hello Connect」で応答するミドルウェアプロバイダーを作成しました。次に、着信リクエストの詳細を記録するもう1つのフィルターミドルウェアを追加します。次に、応答を返すというsayhello()にリクエストを渡します。この他のタスクを達成するために、次のコードで「server.js」ファイルを更新します。
  • 上記のコードでは、loggingmiddleware()関数を使用してもう1つのミドルウェアコンポーネントを追加しました。リクエストのURLとメソッドを記録し、URLを解析して可能な名前を印刷します 提供されたパラメーター。次に、次の()関数を呼び出して、リクエストを次のハンドラーに渡します。 Connectサーバーにポートを聴くと、最初にloggingmiddleware()を使用してからsayhello()を使用します。ここで、node.jsサーバーを起動して次のコマンドを実行した場合:
  • 次のメッセージが表示されます

認証ハンドラーの追加

$ npm init
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
次に行うべきことは、HTTPの基本アクセス認証を使用して、当社のWebサイトの管理者セクションに認証を追加することです。そのためには、サーバーの管理セクションのためだけにハンドラーを実行するにはどうすればよいですか。 Connectの使用()関数は、最初のパラメーターをリクエストのパスとする必要があるものとして、ハンドラーが呼び出されるためのパスを使用できます。したがって、Adminセクション専用に認証ハンドラーが必要な場合は、次のように「server.js」ファイルを更新する必要があります。
<span>{
</span>  <span>"name": "nodejs-connect-demo",
</span>  <span>"version": "1.0.0",
</span>  <span>"description": "Demo on how to use connect framework for Node.js",
</span>  <span>"main": "server.js",
</span>  <span>"scripts": {
</span>    <span>"test": "echo \"Error: no test specified\" && exit 1"
</span>  <span>},
</span>  <span>"repository": {
</span>    <span>"type": "git",
</span>    <span>"url": "https://github.com/abbassoftware/nodejs-connect-demo.git"
</span>  <span>},
</span>  <span>"keywords": [
</span>    <span>"connect"
</span>  <span>],
</span>  <span>"author": "Abbas",
</span>  <span>"license": "",
</span>  <span>"bugs": {
</span>    <span>"url": "https://github.com/abbassoftware/nodejs-connect-demo/issues"
</span>  <span>},
</span>  <span>"homepage": "https://github.com/abbassoftware/nodejs-connect-demo"
</span><span>}</span>
ログイン後にコピー
ログイン後にコピー

次に、次のコンテンツを使用して「server.js」の同じディレクトリに「authdetails.json」ファイルを作成する必要があります。

$ npm init
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
上記のコードでは、「authdetails.json」(作成されたもの)と呼ばれるJSONファイルをロードします。これには、認定ユーザーのユーザー名とパスワードリストを含むJSONオブジェクトが含まれます。次に、Webサイトの管理セクションにのみ使用されるAuthingIcateAdminと呼ばれるもう1つの接続ハンドラーを追加します。前述のハンドラーは、承認ヘッダーをチェックし、ユーザー名/パスワードペアをデコードし、JSONファイルの内容に対して承認のためにチェックします。要求が承認されていない場合、応答コード401を使用した不正な応答がクライアントに送信されます。 このアップデートを使用すると、サイトの管理者セクションにリクエストを行うと、出力は次のとおりです。 Connectを開始します

結論

この記事では、Connectと呼ばれる小さくて強力なnode.jsモジュールの機能を深めました。ミドルウェアコンポーネントを構築して、リクエストを簡単に処理するのに役立ちます。 ConnectおよびMiddlewareプラグインを使用すると、努力が削減され、アプリケーションがより構造化された使用可能なプロジェクトに変換されます。 あなたはどうですか?試したことはありますか?議論を始めましょう。

接続に関するよくある質問(FAQ)

node.jsの接続の主な目的は何ですか?

connectはnode.jsのミドルウェアフレームワークです。これは、ミドルウェアとして知られる高レベルのプラグインのコレクションを提供するシンプルで柔軟で強力なツールです。これらのミドルウェアコンポーネントは、ロギング、静的ファイルの提供、セッションの管理など、さまざまなタスクを実行します。接続は、HTTP要求と応答を処理するパイプラインとして本質的に機能します。これにより、開発者はさまざまなミドルウェアコンポーネントに接続することにより、サーバーに追加の機能を追加できます。

ConnectはExpress.js?

とどのように違いますか? .js、Express.jsは、Connectの上に構築されています。これは、Express.jsにはConnectのすべての機能と追加機能が含まれることを意味します。 Express.jsは、テンプレートエンジン、簡素化された複数のルーティング、ミドルウェアインターフェイスなど、Webおよびモバイルアプリケーション向けのより堅牢な機能セットを提供します。システムにnode.jsとnpm(ノードパッケージマネージャー)をインストールする必要があります。これらを取得したら、端末で次のコマンドを実行して接続をインストールできます。NPMインストール接続。接続アプリケーションで()メソッドを使用します。使用()メソッドは、ミドルウェア関数を引数として取得します。このミドルウェア関数は、Connectのミドルウェアのスタックに追加され、サーバーにリクエストが行われるたびに追加された順序で実行されます。接続で独自のミドルウェアを作成できますか?

はい、Connectで独自のミドルウェアを作成できます。ミドルウェアは、単にリクエストオブジェクト、応答オブジェクト、およびアプリケーションのリクエスト応答サイクルの次のミドルウェア関数にアクセスできる関数です。この関数は、リクエストオブジェクトと応答オブジェクトの任意の操作を実行し、スタック内の次のミドルウェア関数を呼び出すことができます。 Next()関数は、Connectミドルウェアの関数であり、呼び出された場合、スタック内の次のミドルウェア関数に制御を渡します。ミドルウェア関数がその中にNext()を呼び出さない場合、要求応答サイクルは停止します。他のミドルウェアやルートハンドラーに進むことはありません。

接続のエラーを処理するにはどうすればよいですか?

接続は、エラー処理のための組み込みのミドルウェア関数を提供します。このミドルウェア関数は、通常の3つの3つではなく4つの引数を取ります(err、req、res、next)。次の()関数をエラー引数で呼び出すと、Connectは残りのすべてのミドルウェアをスタック内のスキップし、このエラー処理ミドルウェアに進みます。

はい、Connectは、ほとんどのnode.js Webフレームワークでシームレスに動作するように設計されています。実際、Express.jsのような多くの一般的なフレームワークは、Connectの上に構築されています。つまり、これらのフレームワーク内でConnect Middlewareを使用できます。

connect?

connectを使用して静的ファイルを提供するにはどうすればよいですか?このミドルウェア関数を使用して、指定されたディレクトリからファイルを提供できます。たとえば、「public」という名前のディレクトリから静的ファイルを提供するには、次のコードを使用します。App.use(connect.static( 'public'))。 🎜>

執筆時点では、Connectは積極的に維持および更新されていません。最後のアップデートは数年前に行われました。ただし、まだ広く使用されており、その機能は安定しています。より積極的に維持されているミドルウェアフレームワークについては、Express.jsを使用することを検討してください。これは、接続の上に構築され、追加機能が含まれています。

以上がConnectを開始しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート