我的代码是:
fs.writeFile("file.bin", this, 'binary', function(err){
if(err) console.log(err);
else console.log("file saved");
});
这是一个带有一堆属性的函数。
如果我console.log(this)
,它会显示对象,但是当我保存它时,文件只有这个:
[object Object]
由于我没有得到我想要的答案,我想澄清一下我想要的东西。 我希望我的对象存储为对象,而不是json文件或txt文件。如果我有一个mp3流,例如,我希望这个流存储为mp3文件而不是json文件。有人知道怎么做吗?
答案 0 :(得分:3)
对于FileSystem的Node documentation,第二个参数需要是字符串,缓冲区或UintArray。
要将对象持久保存到文件,请使用JSON.stringify(obj)
将对象转换为字符串,然后调用fs.writeFile()
API。
以下是相同的代码段:
fs.writeFile("file.bin", JSON.stringify(obj), 'binary', (err)=>{
if(err) console.log(err)
else console.log('File saved')
})
另一种方法是使用缓冲区代替字符串。
var buffer = Buffer.from(JSON.stringify(obj))
fs.writeFile("file.bin", buffer, 'binary', (err)=>{
if(err) console.log(err)
else console.log('File saved')
})
答案 1 :(得分:0)
您无法将其另存为文件对象,但可以将其另存为对象的文本表示形式。您需要使用JSON.stringify
将对象转换为字符串。像这样:
var myObj = {a:123,b:456};
JSON.stringify(myObj);
或在你的情况下:
JSON.stringify(this);
然后,当您需要访问它时,可以将其变回JSON.parse()
<强>参考强>
答案 2 :(得分:0)
您当然可以将对象保存到文件中,您认为图片是什么?
请考虑以下内容:
x -> x.toString()