Node.js
Express
npm

Node.js + Expressの使い方

前回の続きになります。

今回は、Node.js + Expressを使い、Hello Worldを行います。


npmとは

npm = Node Packge Managerの略。


  • JavaScriptのパッケージマネージャー

  • JSモジュールをいろんな人が再利用できるようにするエコシステム

  • モジュール情報や依存関係等のプロジェクトに関する基本情報をpackage.jsonに保持する


npmの使い方


プロジェクトの初期化(=package.jsonの作成)

npm init

※ --globalオプションでグローバル(プロジェクトをまたがった)インストールが可能


パッケージのインストール

■ 例 : utf-8以外のファイルを読み書きするパッケージをインストール

※ パッケージの種類はhttps://www.npmjs.com/を参照

npm install iconv-lite --save


インストールしたモジュールの確認

npm ls


モジュールの利用


node.js

// httpモジュールの用意

var http = require('http');

のように、モジュールはrequireで読み込む。

※ 一度requireされたものはキャッシュに残るため、複数ファイルにまたがるようなrequireについて無限ループすることはない。


モジュールの作成


  1. jsファイルに記述

  2. module.exportsへモジュール化したいものを出力

■ 例1 : 出力値が関数の場合


module1.js

module.exports = function () {

console.log("Hello World");
};


export.js

// 関数の場合

(function () {
var module = require("./module1.js");
module();
})();

■ 例2 : 出力値が文字列の場合


module2.js

module.exports = "こんにちは"



export.js

// 文字列の場合

(function () {
var module = require("./module2.js");
console.log(module);
})();

■ 例3 : 出力値クラスの場合


module3.js

var PolarBear = function (height, weight) {

this.height = height;
this.weight = weight;
};

PolarBear.prototype.power = function () {
return this.height * this.weight;
};

module.exports = PolarBear;



export.js

// クラスの場合

(function () {
var PolarBear = require("./module3.js");
var obj = new PolarBear(200, 450);
console.log(obj.power());
})();


Expressとは


  • Webアプリケーション開発のフレームワーク

  • Node.jsで作成するサーバーサイドWebアプリケーションのデファクトスタンダード

  • Express自体は最低限の機能だけ提供しており、必要なミドルェアを組み込んで拡張子する必要がある


単独でできること/できないこと


  • ○ : ルーディング

  • ○ : レスポンスの整形

  • × : クエリパラメータ分析

  • × : クッキー分析

  • × : セッション管理

  • × : 認証許可

  • × : DB接続


ミドルウェアの例

リクエスト分析 : cookie-parser, bode-parser

セッション管理 : expresss-session

認証 : passport


Hello World

1, プロジェクトの初期化

npm install

以下のようなpackage.jsonの設定を行う。

※ エントリポイントをapp.jsと置いている。


package.json

{

"name": "sample",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "kamihork",
"license": "ISC",
"dependencies": {
"express": "^4.16.3",
"iconv-lite": "^0.4.23"
}
}

2, expressのインストール

npm install express --save

※package-lock.jsonが自動生成される。

3, app.js

expressはcoreモジュールに対し拡張を行なっている。

httpモジュールに対しても拡張を行なっており、例えばgetメソッドのみに対してのみ処理を行いた時は、以下のように記述することができる。


app.js

// moduleをrequire

var express = require("express");
var app = express();

// getパラメータに対する処理を記述
app.get("/", (request, response) => {
// response.writeHead(200);
// response.write('hello world');
// res.end();
// -> expressでの場合、こう書くこともできる
response.status(200).send("Hello World");
});

// ポート指定で接続
app.listen(3000);


以上、http://localhost:3000/にアクセスすればHello Worldできる。