Nowjs:

当我在端口8080上启动服务器时,它不会给我一个错误,但是当我试图浏览http://localhost:8080/nowjs/now.js ,服务器产生一个错误:

[RangeError: Maximum call stack size exceeded]
undefined

我尝试与socket.io相同,它工作正常。

嗯,如果now.js使用date.js,也许你的问题在这里 。 链接说的是,date.js试图设置toString为Date原型,但是当toString已经被定义时,你会得到其他答案中提到的循环引用

基本上,他们说在date.js中,你改变了

 Date.prototype._toString=Date.prototype.toString 

 if(Date.prototype._toString==undefined) {Date.prototype._toString=Date.prototype.toString;} 

我希望这会帮助别人。 它帮助了我。

阿迪特,你看了下面的内容:

setTimeout调用期间超出最大调用堆栈大小

未捕获RangeError:超过最大调用堆栈大小,JavaScript

所以,你可能会看到这个问题似乎是由于堆栈大小的不当使用而引起的。 如果还没有,可以在这里详细阅读一下这个问题,以及一个可能的解决scheme : 最大调用堆栈大小超过错误

我不认为它与端口有什么关系,更多的是与你正在交互/使用堆栈的方式/方法有关。

那么,我可能是错的。 ; d

我有两个与now.js产生这个错误信息的问题。 希望他们中的一个能帮助你。

循环引用

你不能在现在传入的对象中包含任何循环引用,或者它的扩展方法将barf。 有一些优化和解决方法,现在它被列为封闭的问题 ,但我已经遇到了它。

初始化()只有一次

其次,你可能不要求require('now').initialize(...)两次,或者这两个实例有一点智力上的对话,然后彼此竞争。

我所做的是在app.js中创buildeveryone ,并将其传递到所有需要引用现在“口袋”的require(…)方法中。

在/app.js中:

 var conf = { everyone: require('now').initialize(app) port: 3000, // etc... }; require('./routes')(conf) // etc... 

在routes / index.js中:

 module.exports = function(conf) { var everyone = conf.everyone; return { send: function() { everyone.now.clientFxn(...); } } }