【发布时间】:2020-03-01 22:27:01
【问题描述】:
我想获取一些输出并将输出附加到 csv
这是我目前的代码:
async function writeData() {
const csv = require('csv-parser')
const results = [];
fs.createReadStream('C:\\Users\\User\\Documents\\testingclean.csv')
.pipe(csv())
.on('data',(data)=> results.push(data))
.on('end', async () => {
const cookieJar = await getCookieJar();
const promises = [];
results.forEach((data) => {
promises.push(boxrec.getPersonById(cookieJar,data.id));
})
try {
const fighters = await Promise.all(promises);
fighters.forEach((fighter)=>{
boxer = JSON.parse(JSON.stringify(fighter.output));
fs.appendFile('C:\\Users\\User\\Documents\\newtest.csv',boxer, (err) => {
if (err) console.error('Could not append data to csv');
console.log('Data successfully appended');
})
});
} catch (e) {
console.log(e);
}
})
};
try {
writeData();
} catch (error) {
console.log("Error in writeData: " + error);
}
但是运行此代码不会产生所需的 csv 输出。
我专门写信给 csv,因为我读到我不能追加到 json(理想情况下希望将数据写入 json)
【问题讨论】:
-
使用 try-catch 块来捕获 Promise 拒绝错误。然后用特定错误更新答案。在
end事件回调中创建try-catch。 -
fs.createReadStream 需要 catch 块。或 on('error', ()=>{}) 。看看这个nodejs.org/en/knowledge/advanced/streams/…
-
@Dijkstra 编辑了我的答案