node.js - 如何使用nodejs将对象保存在文件中

标签 node.js stream filestream fs

我的代码是这样的:

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 文件。有人知道怎么做吗?

最佳答案

来自 Node documentation对于 FileSystem,第二个参数需要是字符串、缓冲区或 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')
})

关于node.js - 如何使用nodejs将对象保存在文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43149482/

相关文章:

node.js - 如何在node js中获取docker的环境变量?

javascript - 将数组类型转换为 Mongoose 模型

scala - Scala 什么时候强制流值?

c - 打开文件进行编辑

excel - NPOI 有时只能从电子表格中读取 10 行

javascript - 为什么使用 Mongoose 将数据存储两次?

mysql - JOIN 上的重复结果

c++ - 替换文本文件中的一行

java - 为什么使用 Java 套接字永远不会到达输入流的末尾?

c# - 为什么我的流不可读?