2016-06-16 9 views
4

スクリプトはJSONファイルから読み書きする必要がありますが、これは問題なく動作します。 ファイルをローカルにコピーし、オブジェクトを編集してファイルにバックアップとして書き出します しかし、Ctrl + cでスクリプトを閉じてファイルをチェックすると、そこにある実際のオブジェクトの代わりに[オブジェクト、オブジェクト]があります。 これは毎回発生するわけではありませんが、スクリプトがこのファイルに依存しているので迷惑です。スクリプトを閉じるときにfs.writeFIle()が実際のオブジェクトの代わりに[オブジェクト、オブジェクト]を書き込みます

これを防ぐにはどのようにしたらよいでしょうか? すでに書いてみる前にタイプをチェックしようとしましたが、あまり役に立たなかったようです。

function writeConfig(obj) { 
     fs.writeFile('./config.json', obj, function (err) { 
      if (err) console.log(err); 
     }); 
} 

答えて

0

を書き込むことができませんJSONオブジェクトfs.writeFileの第2引数は、文字列またはバッファです。

あなたがオブジェクトを渡している場合は10

、それを使用、あなたはJSON形式でオブジェクトをシリアル化したい場合は[object Object]

になり、オブジェクトのデフォルト.toString()メソッドを介して変換されます。 JSON.stringify関数:

function writeConfig(obj) { 
     fs.writeFile('./config.json', JSON.stringify(obj, undefined, 2), function (err) { 
      if (err) console.log(err); 
     }); 
} 
関連する問題