如何使用nodejs将对象保存在文件中
How to save an object in a file using nodejs
我的代码是这样的:
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 文件。有人知道怎么做吗?
您不能将其作为对象保存到文件中,但可以将其保存为对象的文本表示形式。您需要使用 JSON.stringify
将对象转换为字符串。像这样:
var myObj = {a:123,b:456};
JSON.stringify(myObj);
或者您的情况:
JSON.stringify(this);
然后当你需要访问它的时候,你可以用JSON.parse()
把它变回一个对象
参考资料
来自文件系统的节点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')
})
当然可以将对象保存到文件中,你认为图片是什么?
考虑如下:
const fd = fs.openSync('myFile.bin', 'w')
fs.writeSync(fd, Buffer.from(myObject, 'base64'))
我的代码是这样的:
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 文件。有人知道怎么做吗?
您不能将其作为对象保存到文件中,但可以将其保存为对象的文本表示形式。您需要使用 JSON.stringify
将对象转换为字符串。像这样:
var myObj = {a:123,b:456};
JSON.stringify(myObj);
或者您的情况:
JSON.stringify(this);
然后当你需要访问它的时候,你可以用JSON.parse()
参考资料
来自文件系统的节点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')
})
当然可以将对象保存到文件中,你认为图片是什么?
考虑如下:
const fd = fs.openSync('myFile.bin', 'w')
fs.writeSync(fd, Buffer.from(myObject, 'base64'))