在Node.js中,我如何将对象保存到文件中?

17

我正在运行一个Node服务器,想知道如何将对象序列化并写入文件中?


1
你可能想要一个数据库,例如Couch、Mongo或MySQL。 - mahemoff
1
被标记为重复的问题并不是在问同样的事情。这个问题实际上是关于序列化和写入文件,而不仅仅是写入文件! - corazza
你编辑了你的帖子;原始内容没有明确表达你也指的是序列化。无论如何,它仍然是一个重复问题,只是这一次是不同的问题。 - Andrew Barber
我看了一下这个问题,它比这个问题(2012年提出)要年轻!此外,标题几乎与我2011年的原始标题相同。而且它询问的是不同的事情,被接受的答案也不同。如果我在寻找序列化技术时发现我的问题,我会感到困惑。 - corazza
标题和问题本身缺乏一致性是不幸的,但这似乎是关于SO上使用“序列化”一词的最早的序列化问题。重新开放似乎是合理的。 - Conspicuous Compiler
显示剩余2条评论
1个回答

39

您可以使用

var str = JSON.stringify(object)

将您的对象序列化为JSON字符串并

var obj = JSON.parse(string)

要将其作为对象读取回来。可以将字符串写入文件。因此,例如,可以有这样的对象:

var p = new Foo();
p.Bar = "Terry"
var s = JSON.stringify(p)
// write s to file, get => { "Bar" : "Terry" }
// read s from file and turn back into an object:
var p = JSON.parse(s);

有关文件的读写,请查看此处:http://nodejs.org/docs/v0.4.11/api/fs.html#fs.write


4
您可以通过要求一个JSON文件,在一步中读取并解析它。例如:var p = require('savefile.json')。 - Paul
8
但是这并不会序列化对象的任何函数。 - Paul Verschoor
2
我认为答案应该包含解决方案,而不是链接到解决方案。 - Tony Topper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接