Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
18
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

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できる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
18
Help us understand the problem. What are the problem?