2012-05-18 7 views
8

私は外部からアクセスされる同じファイル内に2つの関数を持っています。関数の1つは2番目の関数によって呼び出されます。同じファイル内の他のモジュールエクスポート関数にアクセスできますか?

module.exports.functionOne = function(param) { 
    console.log('hello'+param); 
}; 

module.exports.functionTwo = function() { 
    var name = 'Foo'; 
    functionOne(name); 
}; 

これが実行されると、functionOneの呼び出しには定義されていないとフラグが立てられます。

これを参照する正しい方法は何ですか?

私が見つけた1つのパターンは、ファイル自体を参照することです。

var me = require('./thisfile.js'); 
me.functionOne(name); 

...しかし、より良い方法があるように感じます。

答えて

16

ただ単にmodule.exports.functionOne()です。

それはあまりにも面倒だ場合は、単に次のようにします。

function fnOne() { 
    console.log("One!"); 
} 

module.exports.fnOne = fnOne; 
0

私は私が必要と考えてきたが、その周りに他の方法があれば、それはかもしれない含める、輸入、などと同等であると思いますそれを見て興味深いです。私はまだノードの耳の後ろに濡れています。

James HerdmansUnderstanding Node.js "require"ポストは、コード編成を手伝ってくれて本当に助けになりました。その見た目は間違いありません!

// ./models/customer.js 
Customer = function(name) { 
    var self = this; 
    self.name = name; 

}; 

// ./controllers/customercontroller.js 
require("../models/customer"); 

CustomerController = function() { 
    var self = this; 

    var _customers = [ 
    new Customer("Sid"), 
    new Customer("Nancy") 
    ]; 
    self.get() { 
    return _customers; 
    } 
}; 
3
var me = require(module.filename); 
me.functionOne(name); 

や輸出はオブジェクト自体だけで使用

module.exports.functionOne(name); 
関連する問題