Javascript 如何将console.log数据存储到文件?

Javascript 如何将console.log数据存储到文件?,javascript,typescript,Javascript,Typescript,我有一个对象树: let tree = {id: 1, children: [{id: 2, children: [{id: 3}]}]} 我想将此树中的所有id存储在具有子元素的元素选项卡的文件中: 1 2 3 我使用此函数显示树的元素: show(tag: XMLtag) { console.log(tag.show()); if (tag.getChildren().length == 0) { return; } tag

我有一个对象树:

let tree = {id: 1, children: [{id: 2, children: [{id: 3}]}]}
我想将此树中的所有
id
存储在具有子元素的元素选项卡的文件中:

1
  2
    3
我使用此函数显示树的元素:

show(tag: XMLtag) {
    console.log(tag.show());

    if (tag.getChildren().length == 0) {
        return;
    }

    tag.getChildren().forEach((c) => {
        this.show(c);
    });
}
这个函数给了我:

1
2
3
是否可以将结果写入文本文件或以格式显示在浏览器页面上

const log = console.log
console.log = (logData) => {
   // append log to a file, something like this
   fs.appendFileSync('logs.txt', logData + '\n');
   // preserve original logging functionality
   log(logData)
}

当只有一个参数被传递到console.log时,这将起作用。

您可以在
pre
元素内的页面上显示格式化文本

const pre=document.querySelector('pre');
函数addToDisplay(文本){
pre.innerText+=text+'\n';
}
addToDisplay(“第一行”);
addToDisplay(“第二行”)

您可能需要使用node.js文件系统库。结帐或


在同一目录中查找
some file.json
修改固有的
控制台.log
功能:

var文件=“”
console.log=(文本)=>{
文件+=文本+'\n';
}
//调用save()保存文件,如果需要,可以在卸载前执行此操作,也可以从控制台手动调用。
函数save(){
var link=document.createElement('a');
link.href='data:text/plain;charset=UTF-8',+encodeURIComponent(文件);
link.innerHTML='download';
link.download='Console_log.txt';
document.body.appendChild(链接);
link.click();
link.remove();
}

将产生完全不同的输出…在
save()
中,什么是
text
?而
document.body.appendChild(文件)
似乎在向正文添加字符串,就好像它是一个子节点一样,并且该子节点永远不会被访问。为什么?哎呀,谢谢你提醒我@Terrymorse很乐意帮忙。另外,我认为您的意图是
document.body.appendChild(link)
,而不是“(file)”。@terrymorse已修复!如何在所有子级之前添加空格?@Aurica-请参阅已更改的
show()
函数,该函数将每个连续级别缩进2个空格。什么是fs?它在客户端工作吗?您需要在问题中指定前端或后端
const { writeFileSync } = require('fs')
writeFileSync('some-file.json', JSON.stringify({ id: 1, data: [{ id: 2 }, { id: 3 }] }, null, 2))