1

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

这段代码在我所做的所有 Mocha 测试中都能完美运行。

当主 nodejs 应用程序(一个服务器端 REPL 应用程序,涉及原始process.stdinconsole.log调用作为与用户的交互)调用代码时,将创建 CSV 文件,但它始终为空,并且似乎没有抛出错误/警告。

我已经使用node-debugChrome 开发工具广泛调试了 REPL 代码:我确信 WriteStream 的事件处理程序工作正常:没有“错误”,所有“数据”似乎都已处理,“关闭”运行,承诺解决正如预期的那样。

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

我的问题是:

  • 我可以错过一些错误吗?如何确保跟踪有关文件写入的所有通信?
  • 我可以在哪个方向加强我的调查?还有哪些其他设置可以帮助我隔离问题?
  • 由于问题可能是由于process.stdin等式中的存在,有什么方法可以在不编写 webapp 的情况下与用户创建简单、轻量级的交互?

我正在使用 Windows 7。节点 6.9.4,npm 3.5.3,csv-write-stream 2.0.0。

4

1 回答 1

1

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

  • 在 the 的'finish' 事件FileWriteStream不是在 the 的 'end' 事件上解决承诺CSVWriteStream
  • 删除process.exit()我在操作结束时使用的process.stdin(这意味着本教程页面可能需要一些更正)
于 2017-03-08T03:23:35.407 回答