微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在加载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 举报,一经查实,本站将立刻删除。