年 9 月 2015

ボリューム 30 番号 9

この記事は機械翻訳されたものです。

作業プログラマ - 平均する方法。 Node.js

によって Ted Neward |年 9 月 2015

Ted NewardMicrosoft は、ブランドおよび"re relevancing"の一部としてソフトウェア、広範囲にわたるテクノロジから採用がされています。 これを採用しています、テクノロジの 1 つは、Node.js です。これにより、開発者は平均値と呼ばれる、Node.js のプラットフォームで人気のあるソフトウェアの完全スタックのグループのいずれかを使用する絶好の機会にします。 MongoDB、Express、AngularJS および Node.js を表示します。

前回のコラムで (msdn.microsoft.com/magazine/mt185576)、基本的な Node.js の部分が起動して実行します。このコラムでは、単純な"Hello World"Web のノードのエンドポイントでは、起動し、Microsoft Azure の Web サイトに展開行います。[次へ] のいくつかの記事を緩やかに変化を構築してみます私の平均のスタックでは、通過一から作業します。

多くの場所は、別の平均のスタックの部分を入れ替えることができますが、前回の記事で既に説明した、MongoDB、Node.js 用の ASP.NET WebAPI と Express、または BackboneJS の ASP.NET MVC (またはその他の JavaScript 単一ページ アプリケーション フレームワークの全体のホストのいずれか) の AngularJS の DocumentDB: への訪問者の平均が現在保持しているその他の方法のいずれもなどを楽しんでいますが、(少なくとも JavaScript お好きな方の間で)。

Node.js

Node.js とは根本的にだけ"JavaScript、サーバー上です" [はい] に、同時実行を処理しようとする Node.js を別のプログラミング方法があります。呼び出しでブロックではなく、プログラマが渡されます関数で、操作が完了したときに呼び出されるリテラル。これにより、複数のスレッドで、画面の下の使用中であっても、コードをシングル スレッドとして考えると、開発者。全体的に見て、Node.js の最も大きな違いは JavaScript を使用して、c#、Java または Ruby の代わりに、サーバー コンポーネントをビルドします。その意味で、風景の変更するだけでは実際には、まったく別の世界ではありません。

最も簡単な Node.js アプリケーションは、もちろん、ユビキタスな「こんにちは, World では、」する組み込みのコンソール オブジェクトを使用して簡単に記述できます。

console.log("Howdy, NodeJS!");

これには、現在のディレクトリに hello.js をという名前のファイルにある場合は実行する、コマンドラインでノードのユーティリティを使用してノード hello.js を使用します。Node.js を単純に実行中の「ノードこんにちは」で、ファイル名拡張子が推論されるようにすることができますか どちらの方法では、ノードに取り組んでする従来の方法でします。

ほとんどのプログラミングのプラットフォームのようには、Node.js は、特別な独自のライブラリと Api のセットを持ちます。Node.js を使用して最後に、指摘したように、インストールされているライブラリを参照して規則を必要とします。これは、同じ名前のローカル変数に、返されたオブジェクトをトラップします。そのため、たとえば、ことでは実質的に同じあいさつ HTTP プロトコルで、簡単な HTTP サーバーを記述する場合は、私ことができます次、ファイルに挿入 helloHTTP.js の単純です。

var http = require('http');
var port = process.env.PORT || 3000;
http.createServer(function(req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
}).listen(port);

必要な行では、Node.js のインストール内の"http"のライブラリを検索して、依存関係の注入で http のオブジェクトを格納します。これは、標準の Node.js の規則であり、かなり sacrosanct として保持する必要があります。2 行目では、組み込みのプロセス オブジェクトを使用して、周囲の環境にアクセスします。この場合は、ポートをという環境変数の値に設定するかどうかを判断する、プロセス オブジェクト内で「環境」オブジェクトを使用します。場合は、サーバーを実行するポートとしてを使用します。それ以外の場合、既定のポート 3000 を使用します。多くの Node.js のフレームワークでは、わかりにくいの履歴とカルチャの理由から、既定値としては、ポート 3000 を好みます。

Node.js のプログラミングの特性が次の数行で明確になります。私は、http のオブジェクトを使用して、HTTP サーバーを作成します。唯一のパラメーターは、必須 (HTTP の要求) のオブジェクトと res (HTTP 応答) のオブジェクトのパラメーターとして受け取り、res を使用して、HTTP 応答を書き戻す、関数がリテラルです。この表現方法は、Node.js のスタックのすべてのレベル全体にわたってユビキタスです。

これは、これらの「が最もよいまたはしたことがある」の種類の操作のいずれかです。ご覧いただけるの記事では、この詳細です。したがってオフは、ない場合は、実験時間を費やしてください。CreateServer から返されたオブジェクトはし、listen 呼び出しを使用して、必要なポートにバインドされます。そして、なんとがある、実行中の HTTP サーバー"ノード helloHTTP"を使用して、http://localhost:3000 にブラウザーを使って簡単に実行できます。

Azure コマンド ライン ツール

前回の記事、Node.js には、パッケージのユーティリティの従属ライブラリをダウンロードする際、ノード パッケージ マネージャー (npm) と呼ばれる。 思い出しています。また、コマンドラインから行うこともできますし、ツールをダウンロードするのに使用することができます。これは、Node.js の巧妙かつ強力な側面です。プラットフォームに依存しない「盤面イコライザー」として機能します。

違いは、JavaScript のスクリプトの壁の背後にある間は、Windows、Mac OS または Linux を効果的に非表示にすることができます。Microsoft で取得までにこの、少し前に、および azure cli と呼ばれる、Node.js のパッケージにコマンド ライン ツールのセットをパッケージ化します。インストールすることは、npm を簡単です。

npm install –g azure-cli

-G フラグは、ツールをインストールする、「グローバル」npm を示します (つまり、これらにとらわれていませんコマンドを実行するローカル ディレクトリとします)。これにより、システム全体で、作成したパッケージが使用可能にします。完了したら、azure、新しいコマンド ライン ユーティリティは使用できるようになります。Azure cli パッケージには、Azure ポータルを使用するよりも大きいか小さい方機能は不可能です。自動の一部としての azure のスクリプト コマンドをするには、その機能の利点は、azure cli ツールのでは、たとえば、システムを展開します。

Azure へのデプロイします。

そのため、この素敵小さな greeting インターネット経由で、世界中に使用する場合は、ホストとして使用する Azure の Web サイトを作成する必要があります。"Azure"ツールを使用するには、非常に単純です。最初に、Azure 内のアカウントに、ツールを結びつける必要があります。

azure account download

Azure ログイン ポータルをポイントする、システムの既定のブラウザーが起動されます。ログインにするには、Azure のアカウントの資格情報を使用します。設定が完了したら、自動的にダウンロードされます資格情報を含む publishSettings ファイル azure ツールのニーズを直接インポートすることができます。

azure account import <filename>

ファイル名を使用して、"Visual Studio Ultimate with MSDN-4-23-2015年-credentials.publishsettings、"によっては、Azure サブスクリプションの詳細と、発行設定ファイルをダウンロード日のようなものするは多くの場合。その後をサイトへの展開を行うには、Git を設定して、新しい Azure の Web サイトを作成するだけです。

azure site create –git

サイト名の場合は、(その名前が一意である場合)、メッセージが表示回転、適切な Web サイトを開始します。それですべて成功する場合は、git で初期化されたローカル リポジトリとして、現在のディレクトリを起動します。前から helloHTTP.js ファイルを保持するのと同じディレクトリ内にいますとして、Git リポジトリに追加することと、Azure のクラウドに発行できます。

git add helloHTTP.js
git commit –m "Initial commit"
git push azure master

Git はちょっと考えて数秒です。こうすれば、不透明なしばらくの間に残っている手順のシーケンスを使用します。終了、ただし、Azure は、新しい Node.js のコードを保持するのように、参照することができます 図 1です。

こんにちは, World のノード
図 1 のこんにちは, World のノード

HelloHTTP コードは、既定のポート 3000 か周囲のプロセスから環境変数のポートを使用しているためにです。Azure のクラウドでは、ポートは、Azure インフラストラクチャの保持の値に設定されます。これは、Microsoft では、さまざまなサービス エンドポイントをより効率的に管理できるようにします。

実行する必要があります。 インストール手順の最後です。率直に言って、本を読むできたら、過去の初期セットアップの段階に実際にコマンドを実行するよりも時間がかかります。任意の Azure 作業または探索での類似のセットアップの必要もより率直に言ってと。実際に、azure には、多くの開発作業するための次の手順から成るプラットフォームを表します。つまり、これは最終的には、実行する方法を認識することがありますも今すぐ学習しておく必要になるものです。

ここでは、平均値に関連するほとんどすべての要素になります。Azure の詳細を表示することに注意する必要がありますは、MongoDB データベース サーバーをポイントする環境を構成する必要がある場合、または Node.js での Azure の対話を処理する場合のみです。

を包む

Node.js HTTP パイプラインではだけではないことを指摘しておきます。実際には、ノードでは、右のライブラリを開くことであらゆる種類のネットワークに接続されたアプリケーションを実行することができます。Microsoft .NET Framework のも同様です。ただし、.NET Framework では、ような Node.js アプリケーションのほとんどはならない HTTP ベースの本質的にします。

Node.js の http ライブラリは、非常に低レベルです。その結果、Node.js コミュニティより高度なライブラリとやすくするために HTTP ベースのエンドポイントを処理する抽象化のセットを開発しました。このライブラリには、Express が呼び出されます。どのような Node.js コミュニティの呼び出し「ミドルウェア」を作成することができます。 どのような私を見ている次回です。

ここでは、Node.js の http ライブラリをテストしますが、しない取得すぎるために、適用、すればままになりますがフォーマットの背後にあるすばやくしたら、次の反復処理にします。一方、ただししています.

コーディングを楽しんでください。


Ted Neward*、コンサルティング サービス会社の iTrellis で CTO です。彼が 100 を超える記事を執筆および作成時またはなども多くの書籍を共同執筆"『 Professional f# 2.0」(Wrox、2010年)。F# の MVP は、彼は、世界中のカンファレンスで講演を行っています。彼は定期的にコンサルティングを行い、開発者を指導しています。彼の連絡先は ted@tedneward.com (英語のみ) です。ブログを blogs.tedneward.com (英語) に公開しています。*

この記事のレビューに以下の技術的な専門家: おかげで Shawn Wildermuth
Shawn Wildermuth では、13 時 Microsoft MVP (ASP.NET/IIS)、および 8 冊の書籍の執筆者とのソフトウェアの開発に関する記事には、数十台、15 を超えるコースで Pluralsight の執筆は彼の名前です。彼は 1 Wilder 意見の一致 (http://wilderminds.com) で彼のブログにアクセスできると http://wildermuth.comです。