我目前正试图弄清楚如何在node.js express应用程序开始时加载数据,并使其可供应用程序的其余部分使用。
我的问题是:
当前应用程序需要从数据库中获取数据(例如应用程序的通用名称、“超级商店”或“绿色商店”等),使用该应用程序的每个人的数据都是相同的。但我认为,每次用户请求时从数据库中查询名称不可能是正确的方法。如果有一种方法可以在node.js express启动时加载名称,并以某种全局状态保存,那么服务器就不必每次都从数据库中加载名称。
为什么不把名字保存在代码里?还是进程中的.env?
应用程序有多个示例,应用程序的管理员可能希望更改名称。而且创建一个api来设置process.env(heroku的配置变量)似乎并不安全。使用一个数据库来存储这个,可以很容易地保存和加载,但是加载应该只在服务器重新启动时发生一次。
为什么不使用全局变量?
我已经对此做了一些研究,人们并不喜欢使用它,他们告诉我不要使用全局变量。
雷迪斯?
redis可能是一个更好的解决方案,因为它速度更快,但仍然需要从redis服务器进行查询。
最好的方法是什么?每次使用db和load?使用redis?即使每个人都说这是一个坏习惯,也要使用全局变量?
本地应用程序
我刚意识到express有一个app.locals,但这个安全吗?全局变量不好的原理是,将信息保存到app.locals不好吗?
暂无答案!
目前还没有任何答案,快来回答吧!