◆ 特定リクエスト用に共有変数をフォーマットしてプロパティをいじると次に影響する
  ◆ 毎回共有変数は全コピーするとか
  ◆ プロパティ変更するなら新規オブジェクトを作るように注意必要
◆ 当たり前のことだけど稀にミスする
  ◆ さらに作るものによっては影響が大きい

Node.js で Web サーバを作るとき 固定のデータや最新データなどを返すリクエストが来た場合に毎回データをファイルや DB から取得なんてしたくないので リクエストの処理とは別の処理でこれらの情報を収集しておいて リクエストが来たときの処理はその変数をレスポンスとして返すだけということは少なくないです

一見かんたんなものですが ときどきハマる罠があります
当たり前なことなのですが そのリクエスト外でも共有する変数なので 更新してしまうと次のリクエストに影響します

例えば このリクエストだと追加で詳細情報も必要だからと 別の詳細データをプロパティに含めて返すと 以降もプロパティに詳細データが追加されたままになります
言葉だけじゃ分かりづらいのでコードも用意しました

const users = [
{ id: 1, name: "User1" },
{ id: 2, name: "User2" },
]
const user_secrets = {
1: { address: "foo@bar.baz" },
2: { address: "f00@bar.baz" },
}

const onRequest = route => {
if (route === "user-detail") {
for (const user of users) user.secrets = user_secrets[user.id]
return users
}
if (route === "user") {
return users
}
}

user-detail リクエストがあったときに user_secrets の情報をプロパティに追加してしまっています
その後 user リクエストがあったときに返す users には user_secrets も含まれています
user-detail を使えるのは管理者だけで そこで追加される情報は管理者しか見えてはいけない情報 という場合もありえます
管理者しか見えてはいけない情報が一般のユーザにも見えてしまうなんてとても危険ですね

ここまでシンプルだと気付きやすいですが もっと複雑になってくると意図せずプロパティを更新してしまって次リクエストに影響してしまうことが稀にあります

追加に限らず プロパティの更新や削除もありえます
その場合は必要なプロパティがないので 基本どこかで動かなくなって エラーを見れば原因がわかるので ミスしても気づきやすいです
しかし プロパティが増えていた場合は それは使われないので 見た目は問題なくエラーも出ません
だからこそ気づけ無いのですがソースを見たら普通にデータが見えるわけで そこに見れるとまずいデータがあると困りますよね
サービスによっては大問題になりそうですし

そこまでする必要あるのかなとは思いますが 共有データはイミュータブルを強制するように freeze しておいてもいいのかもですね