我正在尝试修改plugin,以写入文件而不是控制台。
为此我在节点中创建了一个文件流,如下所示:
var fs = require('fs');
var fileName = "mochareport.html"
var writeStream;
writeStream = fs.createWriteStream(fileName, function(err) {
if (err) {
log.warn('Cannot write HTML Report\n\t' + err.message);
} else {
log.debug('HTML report written to "%s".', fileName);
}
});
在运行时,它会创建文件。但就行[132]:
if(failures.length) that.writeFailures(failures);
它调用了一个名为writeFailures
的方法,所以我在writeFailures
方法中添加了这样的一行:
writeStream.write("Hello")
但是文本Hello
没有写入文件。
我在这做什么错?
答案 0 :(得分:2)
fs.createWriteStream()
不接受回调。它会返回一个您可以调用.write()
的可写流并监听事件(如果您对此感兴趣,则主要是finish
。)
如果你只想写一次(例如打开,写入然后关闭)而不是继续写(例如打开,写入,写入,...,关闭),那么你可以使用像{{3}这样的东西}或fs.writeFile()
(取决于您所需的行为),两者都接受在文件关闭时调用的回调。