Node.js 将数组值附加到csv
我想获取一些输出并将输出附加到csv 这是我目前掌握的代码:Node.js 将数组值附加到csv,node.js,json,csv,Node.js,Json,Csv,我想获取一些输出并将输出附加到csv 这是我目前掌握的代码: async function writeData() { const csv = require('csv-parser') const results = []; fs.createReadStream('C:\\Users\\User\\Documents\\testingclean.csv') .pipe(csv()) .on('data',(data)=> resu
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)如果您没有任何内容写入csv文件,您应该在程序结束时显式关闭它:
var readsteam = fs.createReadStream();
...
readStream.destroy();
不确定,但这应该是完整的代码:
async function writeData() {
const csv = require('csv-parser')
const results = [];
var readsteam = fs.createReadStream('C:\\Users\\User\\Documents\\testingclean.csv');
readsteam
.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);
}
}
readsteam.destroy();
};
try {
writeData();
} catch (error) {
console.log("Error in writeData: " + error);
}
如果没有任何内容写入CSV文件,则应在程序结束时显式关闭该文件:
var readsteam = fs.createReadStream();
...
readStream.destroy();
不确定,但这应该是完整的代码:
async function writeData() {
const csv = require('csv-parser')
const results = [];
var readsteam = fs.createReadStream('C:\\Users\\User\\Documents\\testingclean.csv');
readsteam
.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);
}
}
readsteam.destroy();
};
try {
writeData();
} catch (error) {
console.log("Error in writeData: " + error);
}
使用try-catch块捕获承诺拒绝错误。然后用特定错误更新答案。在
end
event callback.fs内创建try catch。createReadStream需要catch块。或on('error',()=>{})。看看这个@Dijkstra编辑了我的回答使用try-catch块来捕捉承诺拒绝错误。然后用特定错误更新答案。在end
event callback.fs内创建try catch。createReadStream需要catch块。或on('error',()=>{})。请查看@Dijkstra edited my answer,如果出现在promissions.push行之后或fs.appendFile之后,应该出现在promissions.push行之后或fs.appendFile之后