15

我在同一个文件中有两个函数,都从外部访问。其中一个函数由第二个函数调用。

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

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

当它被执行时,对 functionOne 的调用被标记为未定义。

引用它的正确方法是什么?

我发现一种可行的模式是引用文件本身。

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);

或者只使用导出对象本身

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 回答