如何在加载Node.js Express应用程序时加载数据,以供所有模块/路由使用?

问题描述

我目前正在尝试弄清如何在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 (将#修改为@)