2015-02-09 109 views
0

我試圖修改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沒有得到寫入文件。

我在這裏做什麼錯誤?

回答

2

fs.createWriteStream()不接受回調。它會返回一個可寫入的流,您可以撥打.write()並聽取有關事件(如果您對此感興趣,大多數情況下爲finish)。如果你想只寫一次(例如打開,寫入,然後關閉),而不是繼續寫入(例如打開,寫入,寫入,...,關閉),那麼你可以改用fs.writeFile()fs.appendFile() (取決於你想要的行爲),兩者都接受一個在文件關閉時被調用的回調函數。

+0

沒有,這不起作用。 – batman 2015-02-09 06:13:37