11
21

More than 5 years have passed since last update.

Node.js + Expressの使い方

Last updated at Posted at 2018-05-24

前回の続きになります。
今回は、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できる。

11
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
21