【发布时间】:2015-10-25 08:02:00
【问题描述】:
我在 Node 中不断遇到这个问题,每当我相互调用函数时,我的应用程序就会崩溃。
我已经制作了这个最小的工作示例(按照它的方式工作给了我错误):
启动模块
var module2 = require('./module2');
var data = 'data';
module2.doStuff(data);
模块2
var module3 = require('./module3');
function doStuff(data){
// Stuff happens to 'data'
module3.takeStuff(data);
}
function doSomethingElse(data){
console.log(data);
}
module.exports = {
doStuff: doStuff,
doSomethingElse: doSomethingElse
};
模块3
var module2 = require('./module2');
function takeStuff(data){
// Stuff happens to 'data'
module2.doSomethingElse(data); // I get the type error here
}
module.exports = {
takeStuff: takeStuff
};
我得到的错误是:
module2.doSomethingElse(data); // I get the type error here
^
TypeError: undefined is not a function
start module 调用module2 中的函数,最终调用module3 中的函数,而后者又调用module2 中的函数。
所有模块都是正确需要的,它在module2 中找到第一个方法就好了。
这里发生了什么?当需要从自带的模块中获取功能时,如何处理这种模式?
编辑
调试显示该模块存在,但除了它拥有的原型之外它是空的。我的问题是为什么?在 Node/JavaScript 内部,这里发生了什么?
【问题讨论】:
标签: javascript node.js typeerror