NodeJS – 有时我的导出方法不可用
这很奇怪…
我有一个模块(tools.js),有一些我喜欢使用的方便的函数,比如stemming或者其他东西,它们以通常的方式导出:
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'
我希望如果我没有出口我的function。 但是我有,因为这个完全相同的代码工作正常,我上次运行它,我甚至没有重新启动过程。
一旦中断,我可以重新启动进程,它会很好,但过了一段时间(通常在其他函数被调用后),它会中断。 几乎就像有一些命名空间的事情正在发生,它正在被覆盖。 但我认为Node并没有真正受到这个困扰,因为每个模块都是命名空间的。
有任何想法吗?
基本上,这是与循环引用,在这里解决: https : //github.com/joyent/node/issues/1694