15

同じファイルに 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);

...しかし、もっと良い方法が必要なように感じます。

4

3 に答える 3

28

単にmodule.exports.functionOne()

それが面倒な場合は、次のようにしてください。

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

module.exports.fnOne = fnOne;
于 2012-05-18T23:26:57.753 に答える
4
var me = require(module.filename);
me.functionOne(name);

または単に exports オブジェクト自体を使用する

module.exports.functionOne(name);
于 2012-05-19T12:54:52.950 に答える
0

require は include や import などと同等だと思っていたのではないかと思います。別の方法があれば、それを見てみるのも面白いかもしれません。私はまだ耳の後ろがノードで濡れています。

James Herdmans の 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;
  }
};
于 2012-05-18T23:35:49.570 に答える