RangeError:超出Nodejs mongoose的最大调用堆栈大小

时间:2013-08-16 03:39:52

标签: node.js mongoose limit

想测试在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);

谢谢

1 个答案:

答案 0 :(得分:0)

这一行:

setTimeout (testCUPwrite (i), 1);

没有做你想象的那样。这是直接执行当前堆栈中的testCPUWrite函数。它没有像您想象的那样使用setTimeout。像

这样的东西
setTimeout(testCUPwrite.bind(null, i), 1);

可能会让你去。