2011-09-02 7 views
15

私はノードサーバーを実行していて、私は疑問に思っていました - どうすればオブジェクトをシリアル化してファイルに書き込むことができますか?Node.jsのファイルにオブジェクトを保存するにはどうすればよいですか?

+1

をあなたは、例えば、代わりにDBをお勧めしますソファ、Mongo、MySQL。 – mahemoff

+0

ファイルに文字列(または複数のバイト)を書き込むか、オブジェクトを保存しますか? – svick

+0

重複としてマークされた質問**は同じことを尋ねていません。**この質問は実際にはファイルへの書き込みだけでなく、ファイルへのシリアライゼーション* ***と***の書き込みです! – corazza

答えて

37

あなたはオブジェクトとしてそれをリードバックするにはJSON文字列と

var obj = JSON.parse(string) 

にあなたのオブジェクトをシリアル化するため

var str = JSON.stringify(object) 

を使用することができます。文字列はファイルに書き込むことができます。そのため、たとえばこのようなオブジェクト:

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ファイルを要求することで、読み込みと解析を1ステップで行うこともできます。例えばvar p = require( 'savefile.json'); – Paul

+6

しかし、これはオブジェクトの機能をシリアル化しません。 – Rempargo

+1

解決策にリンクするのではなく、解決策が含まれている方が適切だと思いました。 –

関連する問題