*Node.js について
OSSの実行環境のことで、サーバーサイドのツールやアプリケーションを JavaScript で作成することができます。クライアントもサーバーサイドも同じ言語で動いたら効率的なのではという発想から生まれた JavaScript 環境です。*Node.js でできること
サーバー構築、アプリケーションプログラムの実行ができます。シングルスレッドで非同期処理を行うことができるので、小規模で機動性の高いWebアプリケーションや、リアルタイム性が必要なWebアプリケーションに使うのが適しています。
チャットツールなどでWebブラウザとサーバー側が常時接続し、データを保存し続けながらブラウザ側に表示するのは難しく必要以上に時間がかかってしまいますが、Node.js だと簡単に実装することができます。
*Express とは
Node.js で使用できるWebアプリケーションフレームワークで、Web開発に必要なCookie/セッション/ユーザーログイン/URL パラメータ/POST データ/セキュリティヘッダーなどを扱うライブラリが入っています。*参考
*環境
- Node 10.7.0
- express 4.16.1
- express-generator 4.16.1
*Expressの使い方
任意のディレクトリで初期化し、package.json
を作成します。$ mkdir node-app
$ cd node-app/
$ npm init
Press ^C at any time to quit.
package name: (app)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /Users/m-tominaga/js/node-app/package.json:
{
"name": "app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Is this OK? (yes) yes
package.json
が作成されます。node-app
└── package.json
Express をインストールします。
$ npm install express --save
下記ディレクトリ構成になります。
node-app
├── node_modules
├── package-lock.json
└── package.json
作業ディレクトリ直下に
app.js
を作成します。Express モジュールを読み込んでインスタンス化し、
get()
で「Hello node!」の文字列を返却するAPIを定義しています。そして最後に
listen()
を使って3000番ポートで待ち受け状態にしています。var express = require('express')
var app = express()
app.get('/', function(req, res) {
res.end('Hello node!')
})
app.listen(3000)
下記コマンドを実行します。
$ node app.js
下記URLにアクセスすると「Hello node!」が表示されます。
http://localhost:3000/
*雛形の作成
アプリケーションの雛形を作成するためにexpress-generator
を使います。下記コマンドを実行してインストールします。
$ sudo npm install -g express-generator
下記コマンドを実行すると雛形を作成します。
$ express myapp
下記ディレクトリ構成になります。
node-app
├── app.js
├── myapp
│ ├── app.js
│ ├── bin
│ ├── package.json
│ ├── public
│ ├── routes
│ └── views
├── node_modules
├── package-lock.json
└── package.json
作成した
myapp
ディレクトリ配下でサーバーを起動します。$ cd myapp/
$ npm install
$ npm run start
下記URLにアクセスすると Express のサンプル画面が表示されます。
http://localhost:3000/
*所感
Express を使ったAPIの実装は簡単に書けそうだったので、とりあえず動かしてみたいときなどモックなどの段階に便利なのかと思いました。Node.js の良さを実感できなかったので、チャットアプリなどを実際に作ってみて試してみたいと思います。
Sign up here with your email
ConversionConversion EmoticonEmoticon