这很奇怪……
我有一个模块(tools.js),它有一些我喜欢使用的方便的功能,例如词干提取或其他什么,它们以通常的方式导出:
工具.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 并没有真正受此影响,因为每个模块都有命名空间......
有任何想法吗?