Node.js - 写入 CSV 文件在生产中创建空文件,而在 Mocha 测试中正常

Node.js - write CSV file creates empty file in production, while OK in Mocha testing

This gist 显示了将对象转储到 CSV 文件中的代码片段。 文件写入是使用模块 csv-write-stream 完成的,它 returns 一个承诺。

这段代码在我所做的所有 Mocha 测试中都完美无缺。

当主 nodejs 应用程序调用代码时(涉及原始 process.stdinconsole.log 调用作为与用户交互的服务器端 REPL 应用程序),创建 CSV 文件,但是它总是空的,似乎没有 error/warning 被抛出。

我已经使用 node-debug 和 Chrome 开发工具广泛调试了 REPL 代码:我确信 WriteStream 的事件处理程序工作正常:没有 'error',全部'data' 似乎已处理,'close' 运行,承诺按预期解决。

然而,在后一种情况下,文件始终为 0 字节。我已经检查了几个问答,但找不到像这样具体的内容。

我的问题是:

我正在研究 Windows 7. Node 6.9.4,npm 3.5.3,csv-write-stream 2.0.0。

我设法通过两种方式解决了这个问题,方法是:

  • FileWriteStream'finish' event 而不是 CSVWriteStream
  • 的 'end' 事件上解决承诺
  • 删除我在操作结束时使用 process.stdinprocess.exit()(这意味着 this tutorial page 可能需要一些更正)