以上の手順を完了すると、ファイルの内容はこのリンク先のコードのようになります。内のコードを、このリンク先のコードで置き換える必要があります。このコードで使用しているデータ定義とユーザー・アプリケーションは前とほとんど同じなので、変わったところはないように見えるでしょう。もこのコードであれば、アプリケーションを再起動しても情報は失われません。資格情報を設定した変数を作成します。内の値は使用できません。資格情報はユーザーごとに異なるためです。私の資格情報も公開していません。資格情報を使用してデータベース管理システムに接続した後、使用するデータベースを指定します。格納するという方法です。つの方法では、訪問者名ごとに個別のドキュメントを使用します。この入門記事では、最初の方法を使用することにします。データに対応できます。この方法の主な利点は、前に開発したアプリケーション・ロジックをほとんど変更せずに使用できることです。データ構造を変数として維持できます。データベースではリビジョン・システムを使用しています。ドキュメントを更新するときは、更新するリビジョンを指定します。ドキュメントを読み取った後に、そのドキュメントに変更が加えられている場合、リビジョンが異なることから更新が失敗します。このことから、現在のリビジョンを格納する変数が必要となります。"";以下の関数は、データベース上の訪問者記録を更新します。{更新するデータには常に、_id、キー、実際の値が含まれます。新しいエントリーを作成する場合は例外です。dbRev;ハッシュ・テーブルを更新できるようになったら、最新バージョンをデータベースに挿入できます。{挿入が正常に完了すると、レスポンスの本文に新しいリビジョン値が組み込まれます。body["rev"];以下の行では、データベースで発生したエラーをログに記録します。ここで使用しているメカニズムについては、この記事で追って説明します。データ構造がまだないことを意味します。関数を呼び出した場合は、このエラーを受け取ります。必要となった場合に備えてリビジョンを保持します。呼び出す必要があります。変換されてしまうことです。オブジェクトが文字列として扱われます。日付だけを表示するのであれば、これでも問題はありませんが、ユーザーには各訪問の滞在時間も表示する必要があります。経過時間をミリ秒数で保管します。ミリ秒数を保管するには、プログラム内にいくつかの変更を加える必要があります。置き換える必要があります。内では次のように変更します。Date.now().valueOf()});日付スタンプと時刻スタンプを表示する関数にも変更が必要です。つの関数の中に含めます。same.};デバッグ用のロギングこのアプリケーションの開発中にデータベースの更新が失敗することがあったので、その理由を調べる必要に迫られました。文字列を作成し、更新が失敗するたびに、この文字列の後にログを追加しました。(本番データを使用する前に必ず無効にするか、シークレットが要求されるようにしてください)。