さて、nodeでモジュールを作る方法についてメモメモです。
nodeは本日v0.5.1がリリースされたとこですね。
nodeで言う「モジュール」というのはjavaやphpなどでいう「クラス」みたいなものです。
でも実態はjavascriptなので、中身は関数群というか関数オブジェクトのかたまりですね。
参考)http://nodejs.org/docs/v0.5.1/api/modules.html#modules
commonsJSの仕様にのっとって利用します。
利用するフレームワークはexpressとします。
サンプルとしてよくある人間クラス(Person)を作ります。
hello()メソッドで"hello!"と、myName()メソッドで自分の名前を出力します。
Person.js
var Person = function(name) { this.name = name; this.hello = function() { console.log("hello"); }; this.myName = function() { console.log(this.name); }; }; module.exports = Person;module.exportsは、モジュール全体を関数化(オブジェクト化)する時に利用します。
ちなみにjavascriptのprototypeを使うパターンでも同じです。
var Person = function(name) { this.name = name; }; Person.prototype.hello = function() { console.log("hello"); }; Person.prototype.myName = function() { console.log(this.name); }; module.exports = Person;
app.js
var Person = require("/path/to/Person"); var p = new Person("koexuka"); p.hello(); // "hello!" p.myName(); // "koexuka"です。
またはもう一つやり方があり
Person.js
exports.setName = function(name) { this.name = name; }; exports.hello = function() { console.log("hello!"); }; exports.myName = function() { console.log(this.name); };
app.js
var p = require("/path/to/Person"); p.setName("koexuka"); p.hello(); // "hello!" p.myName(); // "koexuka"です。
こちらの方が少し簡略ですね。
以上でぇぇぇえぇぇぇぇす。
0 件のコメント:
コメントを投稿