初めて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();
こっちだと全体をオブジェクト化するのではなく、メソッド単体をオブジェクト化する感じなのかな。
独自モジュールが大きくなれば、こっちの方が使い易い感じがするな〜。
 
おすすめ書籍