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))