【问题标题】:RangeError: Maximum call stack size exceeded Nodejs mongooseRangeError:最大调用堆栈大小超出了Nodejs mongoose
【发布时间】:2013-08-18 09:29:22
【问题描述】:

想测试在数据库mongodb中插入新文档的速度, 但是,当插入量很大时,会返回如下错误: “RangeError:超出最大调用堆栈大小” 谁能告诉我为什么我会收到这条消息?

var counters2Schema = new mongoose.Schema({'_id': ObjectId, 'seq':String}, { versionKey: false, collection: 'counters'  }),

var k = 100000;
testCUPwrite function (i) {
     var MyObjectId = mongoose.Types.ObjectId;
     MyObjectId = new MyObjectId();
     var counters2Model = new mongoose.model("counters", counters2Schema);
     new counters2Model({'seq': MyObjectId}). save ();
     console.log ('teste_' + MyObjectId);
     if (i <k) {
         i + +;
         setTimeout (testCUPwrite (i), 1);
     }

}
testCUPwrite (0);

谢谢

【问题讨论】:

    标签: node.js mongoose limit


    【解决方案1】:

    这一行:

    setTimeout (testCUPwrite (i), 1);
    

    没有做你认为的那样。那就是直接执行当前栈中的testCPUWrite函数。它不像你想象的那样使用setTimeout。类似的东西

    setTimeout(testCUPwrite.bind(null, i), 1);
    

    可能会让你继续前进。

    【讨论】:

      猜你喜欢
      • 2019-07-05
      • 2014-02-07
      • 2012-05-27
      • 2020-04-14
      • 1970-01-01
      • 2014-08-19
      • 2020-11-19
      • 2015-03-15
      • 1970-01-01
      相关资源
      最近更新 更多