附加到nodejs中的csv文件(使用csv-write-stream)

Pet*_*ias 4 javascript csv node.js electron

我目前正在使用csv-write-stream将内容写入csv文件:

var fs = require('fs');
var csvWriter = require('csv-write-stream')

var writer = csvWriter()
writer.pipe(fs.createWriteStream('out.csv'))
writer.write({hello: "world", foo: "bar", baz: "taco"})
writer.end()
Run Code Online (Sandbox Code Playgroud)

我觉得这很容易.但是,这始终会创建一个新文件.我怎么能在这个文件上添加一些东西?我甚至可以使用相同的库吗?

Jam*_*mes 12

也许迟到了,但对于遇到与我同样问题的人来说错误:没有指定标题

  if (!fs.existsSync(finalPathFile))
    writer = csvWriter({ headers: ["header1", "header2"]});
  else
    writer = csvWriter({sendHeaders: false});

  writer.pipe(fs.createWriteStream(finalPathFile, {flags: 'a'}));
  writer.write({
    header1:"hello",
    header2:"world",
  });
  writer.end();
Run Code Online (Sandbox Code Playgroud)

这个概念代表您第一次访问文件时,您设置了标题,以便稍后可以被其他后端软件(如Excel)读取.之后,当您稍后再次访问该文件时,您不会设置标题.但请记住,每次写入文件时,都需要设置要写入的列.然后你会得到你想要的结果,如下所示:

header1,header2
John,5th avenue,
Richard,St. Jorge street
Run Code Online (Sandbox Code Playgroud)


idm*_*tme 6

实际上,fs.createWriteStream功能决定如何打开'out.csv'

您可以使用以下a标志打开此文件以进行添加:

writer.pipe(fs.createWriteStream('out.csv', {flags: 'a'}))
Run Code Online (Sandbox Code Playgroud)

这是此功能标志的文档。