2012-03-27 66 views
0

我有一个XML转换成JSON然后将其存储在一个MySQL数据库,利用节点的小数据转换应用,表达& node-mysql节点推变量动态

它工作得很好,直到我做的大批量,这有与模块或mySql无关,但似乎在节点中有一些欺骗行为。

要格式化插入的数据我需要在基本数组中的数据,所以我做这样的事情。

var keys = ['first_name', 'last_name', 'mi'], values, que, i, q; 
values = [] 
que = [] 
i = 0 
// data is a json array with corresponding keys 
while(i < data.length){ 

    values.length = 0 

    q = 0 

    for(key in data[i]){ 

     values.push(data[i][keys[q]]); 


     q += 1 
    } 

    que.push(values) 

    verifyInsert(i) 

    i += 1 
} 

当我用一个条目做这个应用程序的工作很棒,但是当我做多个时,我多次获得最后一个条目。

我无法覆盖que,但由于某种原因,每次迭代后que中的所有值都会改变。在普通的javascript中,我一直使用这个方法来构造一个带有可重用变量的数组,然后将实例存储在另一个位置。销毁可重用变量values.length = 0中的值。

此方法在节点中不起作用吗?因为它似乎存储变量本身而不是变量的实例。

回答

4

似乎这就是你的问题,它存储变量本身。

为了克服这个问题,你应该做的

值= [];

在你的循环中。这将为每次迭代创建一个新阵列

+0

谢谢!那工作, – 2012-03-27 21:38:07