sequelize bulk创建递归过程nextTick检测到> 498条记录

时间:2013-09-02 21:25:26

标签: mysql node.js sequelize.js

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

0 个答案:

没有答案