我想要实现的是某种方式来缓存我可以在我的视图和路由中使用的mongoDB/Mongoose查询的结果。每当向集合中添加新文档时,我都需要能够更新此缓存。由于函数是异步的,我不确定这是否可行,如果可行,那么如何去做
这是我目前用于存储画廊的内容,但是每个请求都会执行此操作。
app.use(function(req, res, next) {
Gallery.find(function(err, galleries) {
if (err) throw err;
res.locals.navGalleries = galleries;
next();
});
});
Run Code Online (Sandbox Code Playgroud)
这用于获取画廊名称,然后将其显示在动态生成的画廊的导航栏中。画廊模型只设置了画廊的名称和一个slug
这是我导航中的EJS视图的一部分,它将值存储在下拉菜单中。
<% navGalleries.forEach(function(gallery) { %>
<li>
<a href='/media/<%= gallery.slug %>'><%= gallery.name %></a>
</li>
<% }) %>
Run Code Online (Sandbox Code Playgroud)
我正在开发的网站预计将获得数十万并发用户,因此如果不需要,我不想为每个请求都查询数据库,并且只要在创建新画廊时更新它。