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 回答