nodejsでモジュール(クラス)作成

Pocket
LINEで送る

初めてNodeを使ったときは、どばーっと1ファイルに書いちゃって
ものすごく可読性が良くないソースを書いてしまった。
nodeで独自モジュールを作成できるので、その方法についてメモ。nodejsでの「モジュール」というのはオブジェクト指向言語でいう「クラス」みたい位置づけです。
javascriptなので、中身はライブラリみたいな関数オブジェクトの集合体になります。

まずは独自モジュールを作成(roomInfo.js)する。サンプルとしてはチャットルーム名を管理するモジュール。

var RoomInfo = function(name) {
     this.roomName = name;
};
 
RoomInfo.prototype.getRoomName = function() {
  return this.roomName;
};

module.exports = RoomInfo;

最後の行の「module.exports」はモジュール全体をオブジェクト化してくれます。
 
次にサーバ側のソース(app.js)で、これを読み込んで使ってみる。

// 独自モジュールの読み込み
var RoomInfo = require('./public/javascripts/roomInfo');
// 生成 
var roomInfo = new RoomInfo("room1");
// ルーム名の取得
var roomNum = roomInfo.getRoomNum();

ちなみにフォルダ構成は次のとおりです。

Hogeフォルダ
├── app.js
├── node_modules
└── public
   ├── index.html
   └── javascripts
      ├── roomInfo.js
      └── client.js

【補足】
「module.exports」を使用しない方法もあるみたいです。まだ試してはいないけど。
roomInfo.jsは次のようにする。

exports.setRoomName(name) {
     this.roomName = name;
};
exports.getRoomName = function() {
  return this.roomName;
};

次にサーバ側のソース(app.js)で、これを読み込んで使ってみる。

// 独自モジュールの読み込み
var RoomInfo = require('./public/javascripts/roomInfo');
// ルーム名の設定 
roomInfo.setRoomNum("room1");
// ルーム名の取得
var roomNum = roomInfo.getRoomNum();

こっちだと全体をオブジェクト化するのではなく、メソッド単体をオブジェクト化する感じなのかな。
独自モジュールが大きくなれば、こっちの方が使い易い感じがするな〜。
 

おすすめ書籍

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください