0

基本的なコンソール出力を強化するためにNode.jsモジュールを作成しています(それを行うノードモジュールが100以上あることは知っていますが、私の唯一の目的はノードを練習することです)。

コンソールメッセージで時刻を表示したいと思います。モジュールコードは次のとおりです。

getTime = function(){
    var date = new Date()
    return date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()
}

module.exports.log = function(text){
    console.log(getTime() + ' - ' + text)
}

したがって、モジュールを使用できます。

myConsole = require('./myconsole.js')
myConsole.log('Hello from my own console module')

いくつかのテストではうまく機能しますが、myConsole を (短時間で) 複数回呼び出すと、ノードから次のエラー メッセージが返されます。

    var date = new Date()
               ^
RangeError: Maximum call stack size exceeded

それを回避する方法はありますか?日付インスタンスを破棄する必要がありますか? (使ってみましdelete dateたがダメでした)

ありがとう。

4

1 に答える 1

1

あなたのコードでテストすると、RangeError は発生しません。コールスタックがオーバーフローする可能性はないと思います。最大呼び出しスタック サイズ超過エラーは、多くの場合、プログラム内の呼び出しループが原因で発生します。エラーの原因を突き止めるには、プログラムの呼び出しフローを確認する必要があると思います。

于 2013-03-13T15:10:14.320 に答える