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.stdin
和 console.log
调用作为与用户交互的服务器端 REPL 应用程序),创建 CSV 文件,但是它总是空的,似乎没有 error/warning 被抛出。
我已经使用 node-debug
和 Chrome 开发工具广泛调试了 REPL 代码:我确信 WriteStream 的事件处理程序工作正常:没有 'error',全部'data' 似乎已处理,'close' 运行,承诺按预期解决。
然而,在后一种情况下,文件始终为 0 字节。我已经检查了几个问答,但找不到像这样具体的内容。
我的问题是:
- 我可以遗漏一些错误吗?我怎样才能确定跟踪有关文件写入的所有通信?
- 我可以在哪个方向加强调查?其他哪些设置可以帮助我找出问题?
- 由于问题可能是由于等式中存在
process.stdin
,有什么方法可以在不编写 Web 应用程序的情况下与用户创建简单、轻量级的交互?
我正在研究 Windows 7. Node 6.9.4,npm 3.5.3,csv-write-stream 2.0.0。
我设法通过两种方式解决了这个问题,方法是:
- 在
FileWriteStream
的 'finish' event 而不是 CSVWriteStream
的 'end' 事件上解决承诺
- 删除我在操作结束时使用
process.stdin
的 process.exit()
(这意味着 this tutorial page 可能需要一些更正)
This gist 显示了将对象转储到 CSV 文件中的代码片段。 文件写入是使用模块 csv-write-stream 完成的,它 returns 一个承诺。
这段代码在我所做的所有 Mocha 测试中都完美无缺。
当主 nodejs 应用程序调用代码时(涉及原始 process.stdin
和 console.log
调用作为与用户交互的服务器端 REPL 应用程序),创建 CSV 文件,但是它总是空的,似乎没有 error/warning 被抛出。
我已经使用 node-debug
和 Chrome 开发工具广泛调试了 REPL 代码:我确信 WriteStream 的事件处理程序工作正常:没有 'error',全部'data' 似乎已处理,'close' 运行,承诺按预期解决。
然而,在后一种情况下,文件始终为 0 字节。我已经检查了几个问答,但找不到像这样具体的内容。
我的问题是:
- 我可以遗漏一些错误吗?我怎样才能确定跟踪有关文件写入的所有通信?
- 我可以在哪个方向加强调查?其他哪些设置可以帮助我找出问题?
- 由于问题可能是由于等式中存在
process.stdin
,有什么方法可以在不编写 Web 应用程序的情况下与用户创建简单、轻量级的交互?
我正在研究 Windows 7. Node 6.9.4,npm 3.5.3,csv-write-stream 2.0.0。
我设法通过两种方式解决了这个问题,方法是:
- 在
FileWriteStream
的 'finish' event 而不是CSVWriteStream
的 'end' 事件上解决承诺
- 删除我在操作结束时使用
process.stdin
的process.exit()
(这意味着 this tutorial page 可能需要一些更正)