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