我正在使用 sequelize v2.0.0-alpha3 和 node.js v0.10.12 。我尝试在我的表中插入 > 498 条记录,但我的应用程序崩溃并出现以下警告和错误:
(节点)警告:检测到递归 process.nextTick。这将在下一个版本的节点中中断。请使用 setImmediate 进行递归延迟。
RangeError:超出最大调用堆栈大小
有没有办法一次插入> 498条记录?
我创建了一个简单的测试用例,发现它崩溃了 > 498 条记录:
//模型文件
module.exports = function(sequelize,DataTypes){
return sequelize.define('insertTest',
{
ID:{
type:DataTypes.INTEGER,
autoIncrement:true,
primaryKey:true,
get:function(){
return this.getDataValue('ID');
},
set:function(ID){
return this.setDataValue('ID',ID);
}
},
test:{
type:DataTypes.INTEGER,
get:function(){
return this.getDataValue('test');
},
set:function(test){
return this.setDataValue('test',test);
}
}
},
{
timestamps:false,
tableName: 'insertTest',
logging:false
}
)};
//控制器文件
app.get('/insertTest',function(request,response){
var value=[];
var len = parseInt(request.query.len);
for(var i=0;i<len;i++)
value.push(i);
insertTest
.bulkCreate(value,['test'])
.success(function(results){response.json('Success');})
.error(function(error){response.json(error);})
})