Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js-write CSV file在生产中创建空文件,而在Mocha测试中为OK_Node.js_Stdin_Fs_Csv Write Stream - Fatal编程技术网

Node.js-write CSV file在生产中创建空文件,而在Mocha测试中为OK

Node.js-write CSV file在生产中创建空文件,而在Mocha测试中为OK,node.js,stdin,fs,csv-write-stream,Node.js,Stdin,Fs,Csv Write Stream,显示将对象转储到CSV文件中的代码段。 文件写入是使用模块完成的,它返回一个承诺 这段代码在我所做的所有Mocha测试中都能完美地工作 当主nodejs应用程序(涉及原始process.stdin和console.log调用以及与用户交互的服务器端REPL应用程序)调用代码时,会创建CSV文件,但该文件始终为空,并且似乎不会抛出错误/警告 我已经用节点调试和Chrome开发工具对REPL代码进行了大量调试:我确信WriteStream的事件处理程序工作正常:没有“错误”,所有“数据”似乎都得到了

显示将对象转储到CSV文件中的代码段。 文件写入是使用模块完成的,它返回一个承诺

这段代码在我所做的所有Mocha测试中都能完美地工作

当主nodejs应用程序(涉及原始
process.stdin
console.log
调用以及与用户交互的服务器端REPL应用程序)调用代码时,会创建CSV文件,但该文件始终为空,并且似乎不会抛出错误/警告

我已经用
节点调试和Chrome开发工具对REPL代码进行了大量调试:我确信WriteStream的事件处理程序工作正常:没有“错误”,所有“数据”似乎都得到了处理,“关闭”运行,承诺按预期解决

然而,在后一种情况下,文件总是0字节。我查了好几个问答题,找不到像这样具体的问题

我的问题是:

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

我在Windows7上工作。节点6.9.4、npm 3.5.3、csv写入流2.0.0。

我通过以下两种方式解决了此问题:

  • FileWriteStream
    发生时而不是在
    CSVWriteStream的“结束”事件时解决承诺
  • 删除
    process.exit()
    我在操作结束时使用的
    process.stdin
    (这意味着可能需要一些更正)

如何测试它?测试条件是否与主应用程序中使用的条件类似?您在主应用程序中使用了
process.stdin
,这在摩卡很难测试,所以可能存在问题?描述了如何模拟
进程.stdin
。这很有趣。不,我的测试只是测试代码。将尝试在测试中包含
process.stdin
模拟。非常感谢。