情報アイランドNode.js情報アイランド「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。関連JSONファイルにデータを書き込むには非同期的に書き込む方法と同期的に書き込む方法の2つがあります。非同期的な書き込みJSONファイルにデータを非同期的に書き込むにはjsonfileモジュールのjsonfile.writeFile関数やfs-extraモジュールのfsExtra.writeJson関数を使用します。{});第1引数にファイルのパスを指定します。第2引数にJSONファイルに書き込むデータを指定します。オブジェクトを指定します。第3引数にオプションをオブジェクトとして指定します。この引数は指定しなくても構いません。オプションには下のようなものがあります。encoding・・・JSONファイルの文字コードを指定します。replacer・・・JSON.stringify関数の第2引数として使用する値を指定します。spaces・・・JSON.stringify関数の第3引数として使用する値(インデントの長さ又はインデントに使用する文字)を指定します。第4引数にコールバック関数を指定します。この関数の第1引数はエラーオブジェクトです。ファイルが既に存在する場合には上書きされます。同期的な書き込みJSONファイルにデータを同期的に書き込むにはjsonfileモジュールのjsonfile.writeFileSync関数やfs-extraモジュールのfsExtra.writeJsonSync関数を使用します。null});第1引数にファイルのパスを指定します。第2引数にJSONファイルに書き込むデータを指定します。オブジェクトを指定します。第3引数にオプションをオブジェクトとして指定します。この引数は指定しなくても構いません。このオプションはjsonfile.writeFile関数の第3引数のオプションと同じです。ファイルが既に存在する場合には上書きされます。注意事項jsonfile.writeFile関数やfsExtra.writeJson関数やjsonfile.writeFileSync関数やfsExtra.writeJsonSync関数は存在しないフォルダのファイルにデータを書き込むことはできません(存在しないフォルダを自動的に作成することはできません)。存在しないフォルダのJSONファイルにデータを書き込むには下のような関数を使用します。fs-extraモジュールのfsExtra.outputJson関数・・・この関数の引数はjsonfile.writeFile関数と同じです。fs-extraモジュールのfsExtra.outputJsonSync関数・・・この関数の引数はjsonfile.writeFileSync関数と同じです。使い分け原則的にはjsonfile.writeFile関数やfsExtra.writeJson関数やfsExtra.outputJson関数を使用するべきであり、特に理由がないならjsonfile.writeFileSync関数やfsExtra.writeJsonSync関数やfsExtra.outputJsonSync関数は使用するべきではありません。これは、ファイルへのアクセスは非常に時間の掛かる処理であるためです。ファイルへのアクセスを同期的に行うとアクセスが完了するまでプログラムは待機状態となり、他の処理を行うことができません。長い時間プログラムが待機状態になると様々な問題を引き起こす可能性があります(このような現象をスターベーションと言います)。スターベーションとは?Node.jsのパフォーマンスNode.jsを使用するとパフォーマンスが高いウェブアプリケーションを作成することができます。パフォーマンスが高いウェブアプリケーションを作成することができるのでしょうか。それはディスクやネットワークからのデータの読み込みには非常に時間が掛かるということが関係しています。データを読み込むのに掛かるサンプルコード1jsonfile.writeFile関数の使用例です。3つ目のコマンドライン引数として与えられたファイルにJSONデータを非同期的に書き込みます。jsonfileでインストールします。実行結果pizyumi.jsonを3つ目のコマンドライン引数に指定してコードを実行すると正しくファイルにJSONデータが書き込まれます。pizyumi.json{"name":"pizyumi","age":26,"address":"fukui"}関連Node.js入門pizyumiプログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。クライアント・サーバ編SVG入門Node.jsでJSONファイルにデータを書き込む「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。