1

我正在使用 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);})
   })
4

0 回答 0