节点不会写入文件。

时间:2015-02-09 05:09:37

标签: node.js

我正在尝试修改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没有写入文件。

我在这做什么错?

1 个答案:

答案 0 :(得分:2)

fs.createWriteStream()不接受回调。它会返回一个您可以调用.write()的可写流并监听事件(如果您对此感兴趣,则主要是finish。)

如果你只想写一次(例如打开,写入然后关闭)而不是继续写(例如打开,写入,写入,...,关闭),那么你可以使用像{{3}这样的东西}或fs.writeFile()(取决于您所需的行为),两者都接受在文件关闭时调用的回调。