エンジニアを目指す日常ブログ

日々勉強したことのメモ。独学ですので間違っていたらコメント等で教えてください。

【Node.js】モジュールの作成方法

はじめに

本記事の目的

Node.jsでWEB-APIサーバを立ち上げたが、一部の処理を別のモジュールとして切り出したい場合がある。自分でモジュールを定義して、処理を呼び出す方法をメモ。

前提

  • Node.jsとnpm(Node.jsのパッケージマネージャ)がインストールされていること。

tomiko0404.hatenablog.com

  • Node.js + Expessを利用してHTTPサーバを立ち上げていること。

前回の記事 tomiko0404.hatenablog.com

module.exportsを利用してモジュール作成

モジュールファイルの作成

app.jsの配下にlibフォルダを作成し、その配下にmydouble.jsを作成する。

lib/mydouble.js

module.exports = (num) =>{
    return (num * 2);

}

module.exports

module.exportsに関数を代入することで、モジュールとしてエクスポートできる。

app.jsの記載

app.jsに以下のように記載する。 requireした関数をmydoubleに代入して、mydouble(10)で呼び出している。

app.js

const express = require("express");
const portNumber = 8000;
const app = express();

// ★mydoubleモジュールをrequireする
const mydouble = require("./lib/mydouble.js");

// ★mydoubleを呼び出す
app.get("/", (req, res) => {
    res.status(200).send("My number is " + mydouble(10) + ".");
});


app.listen(portNumber);
console.log(`PortNumber is ${portNumber}`);

結果確認

10×2の20が返却されていることが確認できた。

"結果確認"
結果確認

exportsを利用する場合

exportsを使用して、各プロパティを定義することもできる。

lib/mycalc.js

exports.myadd = (num) => {
    return num + 100;
};

exports.mysubtract = (num) => {
    return num - 100;
};

exports.numbers = {
    a: 1,
    b: 200,
    c: 10000,
};

app.jsでの利用方法

以下のように利用した。

app.js

// ★mycalcモジュールをrequireする
const mycalc = require("./lib/mycalc.js");

// ★mycalc.[プロパティ名]で呼び出す
app.get("/", (req, res) => {
    let data = `mycalc.myadd(10):${mycalc.myadd(10)} `;
    data = data + `mycalc.mysubtract(300):${mycalc.mysubtract(300)} `;
    data = data + `mycalc.numbers.a: ${mycalc.numbers.a}`;
    res.status(200).send(data);
});

参考資料
Node.js 用モジュールの作り方(require でロード可能な Node モジュールを作成する) | まくまくNode.jsノート
exports と module.exports の違い - Qiita

おわりに

Node.jsで自分で定義したモジュールを呼び出す方法がわかった。