将console.log()内容管道传输到Node.js中的.txt文件

时间:2017-07-21 23:59:13

标签: javascript node.js console.log lighthouse

我有一个Node.js文件,可以向Terminal发送一堆测试结果,很容易> 1000行。该文件看起来像这样:

launchChromeAndRunLighthouse('https://www.apple.com/', flags).then(results => { console.log(results); });

console.log()仅在那里,因为我无法找到另一种查看结果的方法。我需要一种通过Node.js创建文件的方法,而不是命令行,它包含所有CLI输出/结果。

我认为fs.appendFile('example.txt', 'append this text to the file', (err) => {});可能有用,但我需要“附加”到文件的是函数results。当我尝试这个时,该文件只包含[object Object]而不是测试的实际结果。

我是Node的初学者,非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

你很接近,但你需要在你的其他功能中加入appendFile。这假定您的'结果'对象是字符串类型。如果没有,那么您需要获取此对象的字符串版本。

灯塔文档指定返回的日志信息的格式。如果您将output: json添加到flags对象,那么您可以使用它

launchChromeAndRunLighthouse('https://www.apple.com/', flags).then(results => { 
    fs.appendFile('example.txt', JSON.stringify(results), (err) => {
        console.log('error appending to file example.txt');
    });
});