これは奇妙です...
ステミングなど、使用したいいくつかの便利な機能を備えたモジュール(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'
関数をエクスポートしていなかった場合に期待することです。しかし、前回実行したときとまったく同じコードが正常に機能したため、プロセスを再起動していません。
壊れたら、プロセスを再起動して問題ありませんが、しばらくすると (通常は他の関数が呼び出された後)、壊れます。あたかもいくつかの名前空間が進行中であり、それが上書きされているかのようです。しかし、各モジュールには名前空間が付けられているため、ノードはこれに悩まされていないと思いました...
何か案は?