javascript - 如何将查询数据添加到数组
问题描述
我正在尝试使用对 REST 端点的查询来遍历数据,然后将其添加到数组中并将其写入 csvtempArray
是空的end
var fastcsv = require('fast-csv');
var tempArray=[];
conn.login(logincred, loginpass, function(err, res) {
fastcsv.fromPath("accounts.csv").on("data", function(csvrow){
conn.query("SELECT Id, Name, PersonEmail FROM Account WHERE PersonEmail = '" + csvrow[2] + "' LIMIT 1" , function(err, res) {
if (err){
console.log(err);
}
csvrow[3] = res.records[0].Id
tempArray.push(csvrow);
console.log(tempArray)
});
}).on('end',function() {
console.log('CSV file successfully processed');
console.log(tempArray)
//want to write csv here
});
});
解决方案
我把它整理出来,尼尔森是正确的,这基本上是一个比赛条件。我把'end'放在 conn.query() 循环中效果更好。
fastcsv.fromPath("accounts.csv").on("data", function(csvrow){
conn.query("SELECT Id, Name, PersonEmail FROM Account WHERE PersonEmail = '" + csvrow[2] + "' LIMIT 1" , function(err, res) {
if (err) {
console.log(err);
}
csvrow[3] = res.records[0].Id
tempArray.push(csvrow);
fastcsv.writeToPath("new.csv", tempArray, {headers: true})
.on("finish", function() {
console.log("Added : " + csvrow[2]);
});
});
})
推荐阅读
- c# - 使用 DataAnnotations 进行模型验证 [DataType(DataType.Currency]
- r - 将数据集中的变量传递给调用 dplyr 的函数
- regex - 如何在正则表达式中以非固定宽度向后看
- java - Scanner accepts wrong input
- python - 移动矩形冻结到最终状态,而不是执行每个移动
- python - 使用 Python3,是否有一种简单的方法来过滤数据帧 [WaypointID1, WaypointID2] 以仅将起始 waypointIDs 转换为最终 waypointIDs
- java - Android 上 org.springframework.web.util.UriComponentsBuilder.newInstance 的 ExceptionInInitializerError
- html - 如何使这两个图像的大小与其包含的 div 相同?
- c - 如何计算输入的数字?
- mysql - 防止 MySQL 自动为外键创建索引?