当然ではありますが、生のNode.js(特にWebアプリ)でプロジェクト作成時にやることが多く、通信に関する勉強にもなったのでメモを残しておきます。
Node.jsに関してはほぼ初心者なので、不足や誤りがあるかもしれません。発見した場合はコメントなどでご報告いただけますと幸いです。
プロジェクトの初期化
とりあえず初期化。
いろいろ聞かれるので、それぞれのプロジェクトに合った選択をしていきます。
$ npm init
- package name: (フォルダ名) プロジェクトの名前を定義します。特に変更がなければそのままReturnまたはEnterでOK。
- version: (1.0.0) バージョンを定義します。これも1.0.0のままでよければそのままReturnまたはEnterでOK。
- description: プロジェクトの概要を定義します。これも空白のままでよければそのままReturnまたはEnterでOK。
- entry point: (index.js) アプリケーションを起動するためのファイルを指定します。index.jsやmain.jsが多そう?これもindex.jsのままでよければそのままReturnまたはEnterでOK。
- test command: テストコマンドの指定をします。これも空白のままでよければそのままReturnまたはEnterでOK。
- git repository: Gitのリポジトリを指定します。これも空白のままでよければそのままReturnまたはEnterでOK。
- keywords: npmに公開した時のキーワードを設定します。今回はWebアプリを作ることを想定しているのでそのままReturnまたはEnterでOK。
- author: 製作者の名前を設定します。これもnpmに公開した時に使われるようなので、そのままReturnまたはEnterでOK。
- license: (ISC) npm に公開された時のライセンスを記述します。これもnpmに公開した時に使われるようなので、そのままReturnまたはEnterでOK。
-yを末尾につけることで、すべてデフォルトのまま初期化することができます。
http-status-codesをインストールする
$ npm install http-status-codes --save #--saveはNode.js 5.0.0以降は自動で付与されるのでなくてもよい
サーバーがリクエストの受信に成功したことを表す200や、Not foundを表す404などを返します。
リクエストとレスポンスに最低限必要なコードを書く
ポート番号の設定
const port = 3000; //今回は3000番ポートを使用。
httpモジュールのロード
const http = require('http');
http-status-codesモジュールのロード
const httpStatus = require('http-status-codes');
サーバーを作成する
app = http.createServer((req, res) => {
res.writeHead(httpStatus.OK, {
'Content-Type': 'text/html'
});
res.write('<h1>Hello, World!</h1>');
res.end();
});
httpStatus.OKには200が入っています。
これをres.writeHeadの引数にとることで、リクエストが成功したことを表します。
その後、res.write()でボディを記述し、res.end()でレスポンスを閉じることで、クライアントにレスポンスを送信します。
ポートの監視
このコードの初めに記述した3000番ポートを監視します。
app.listen(port);
これでlocalhost:3000にアクセスすることができるようになりました。
実際にブラウザからアクセスしてみると、下の写真のようになっています。
まとめ
これで、サーバーを立てることができるようになりました。
実際にExpressなどのフレームワークなどを一切使わずにNode.jsをサーバーサイドとして使用する機会はあまり多くはないと思いますが、通信の仕組みをやんわりと理解することにも役立ちそうな気がします。