2017-02-25 18 views
1

現在、ダッシュボード/ウェブブラウザホームページに似たNodejs/Express Webアプリケーションを開発中です。データはユーザーの設定に従って表示されます。現時点では、ユーザーがサインアップしたときにjsonファイル(テンプレートに基づいて作成)を作成しています。このjsonファイルには、メインページの情報を表示するために必要な設定があります。この情報の一部は、気象API(+単位、予測日数など)にアクセスするジオロケーション(都市+国)、テレビ番組のリスト(私のデータベースからエピソードのリストを取り出せるように)などです。Express webappユーザ設定を保存/アクセスする方法

現在、ユーザーがログインすると、このファイルを約4回読み込んでいます。これは良いアイデアではないと確信しています。現在はうまく機能していますが、将来的に(設定を追加したりトラフィックを増やしたりする)問題を見ることができます。

webappがほぼ完了しているので、私はこれを気にします。

  1. が一度時にファイルを読む
  2. クッキー(複数可)でセッションストアでのユーザー設定(Redisの例)
  3. 保存ユーザー設定を保存します。私は、オプションのカップルに思っていますユーザーはログインして何とかキャッシュする

これを行うには最適な方法はありますか?

+0

なぜDBに格納しないのですか? – Daniel

+0

私はユーザー設定と最良の方法を保存する方法を研究していたとき、正解がないという結論に達しました。リレーショナルデータベース(Postgresを使用して)にユーザ設定を保存するにはいくつかの方法がありますが、テーブル+リレーションおよび長いクエリをたくさん作成することになります。もう1つの解決策は、JSONファイルに情報を格納することでした。私は最後の方に行きました。何か不足していますか?私はDBに格納するように切り替える必要がありますか? – nip

答えて

0

クッキーに言及しているので、この情報をクライアント側に保存する場合は、consider looking into JavaScript's localStorage API(またはユーザーがブラウザを閉じるときにデータが期限切れになるようにする場合はsessionStorage)があります。

localStorageはキー:値のペアです(Redisの場合のように)が、データはユーザーのデバイスにローカルに保存されます。クライアント側のストレージソリューションと同様、localStorageから提供されたデータは何ら検証せずに信頼する必要はありませんが、この種のタスク用に設計されたツールです。

+0

私は本当にクライアント側とサーバー側のどちらを格納するかはわかりません。私はまだその質問について議論している。とにかく、入力のおかげで、私はlocalStorageを見てみましょう。 – nip

+0

私が知る限り、私はlocalStorage APIサーバー側にアクセスできません。少なくとも直接的ではありません。私はサーバーにデータを送信するためにajaxリクエストを作成する必要があります。また、私は実際にはクッキーとlocalStorageの間に大きな違いは見当たらないので、おそらく代わりにクッキーを使用します。 – nip