问题描述
我目前正在尝试弄清如何在Node.js Express应用程序的开始处加载数据,并使其可供其余应用程序使用。
我的问题:
当前应用程序需要从数据库中获取数据(例如,应用程序的通用名称“ Super Store”或“ Green Store”等),使用该应用程序的每个人的数据都相同。但是我相信,每次用户请求时都从数据库中查询名称可能不是正确的方法。如果有一种方法可以在Node.js Express启动时加载名称并保存为某种全局状态,则服务器不必每次都从数据库加载名称。
为什么不将名称保存在代码中?还是在process.env中?
该应用有多个实例,该应用的管理员可能要更改名称。而且制作一个用于设置process.env(用于Heroku的配置变量)的API似乎并不安全。使用数据库来存储它,将使其易于保存和加载,但是加载仅在服务器重新启动时发生一次。
为什么不使用全局变量?
我已经对此进行了一些研究,人们并不喜欢使用它,而是告诉我不要使用全局变量。
Redis?
Redis可能是一个更好的解决方案,因为它速度更快,但仍然需要从redis服务器查询。
做到这一点的最佳方法是什么?使用数据库并每次加载?使用Redis?即使每个人都说不好的做法,也要使用全局变量?
app.locals
我刚刚意识到express具有app.locals,但这安全吗?将全局信息保存到app.locals不好是不是在全局变量背后的原理相同?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)