NodeJS - 有时我的导出方法不可用

时间:2012-12-10 17:33:10

标签: node.js methods module

这很奇怪......

我有一个模块(tools.js),它有一些我喜欢使用的方便功能,比如词干或其他什么,它们以通常的方式导出:

tools.js

var stem = function(str) {
    // do some stuff
    return str;
}

module.exports = {
    stem: stem
}

我正如你期望的那样在其他模块中使用它:

var tools = require('tools.js');

var someProcess = function(str) {
    return tools.stem(str);
}

这很有效......有时候。

其他时候我收到如下错误:

TypeError: Object #<Object> has no method 'stem'

如果我没有导出我的功能,我会期待。但我有,因为上次运行它时,完全相同的代码工作正常,我甚至没有重新启动过程。

一旦它中断,我可以重新开始这个过程,它会很好,但过了一段时间(并且通常在调用其他函数之后),它会中断。几乎就好像有一些命名空间的东西正在进行并且它被覆盖了。但我认为Node并没有真正受此影响,因为每个模块都是命名空间......

任何想法?

1 个答案:

答案 0 :(得分:1)

基本上,它与循环引用有关,在此处提及:https://github.com/joyent/node/issues/1694