我在同一个文件中有两个函数,都是从外部访问的。其中一个功能由第二个调用。
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);
......但感觉必须有更好的方法。
答案 0 :(得分:19)
只需module.exports.functionOne()
。
如果这太麻烦,只需执行以下操作:
function fnOne() {
console.log("One!");
}
module.exports.fnOne = fnOne;
答案 1 :(得分:3)
var me = require(module.filename);
me.functionOne(name);
或只使用出口对象本身
module.exports.functionOne(name);
答案 2 :(得分:0)
我想我一直在考虑要求是相当于包含,导入等等。如果有另一种方法,它可能会很有趣。我仍然在节点后面湿透了。
在帮助代码组织方面,James Herdmans Understanding 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;
}
};