问题描述
express写的文章管理系统,每个页面的菜单导航栏都是一样的,但是每个页面都从数据库去查询了一次所有的菜单。
怎么使整个网站只从数据库查询一次菜单,然后把数据给每个页面使用呢?
数据库用的 MongoDB
工具用的 mongoose
问题解答
回答1:不清楚node,是不是可以启动的时候,就加载菜单数据,把菜单数据放到全局变量里面?
回答2:个人觉得,你可以做一层缓存。
回答3:分割页面,再额外引入ejs子页面。
回答4:https://github.com/hubwiz/example-node
回答5:你可以保存缓存里面的
回答6:缓存起来,有用redis么?或者你绑定到app.locals上,检查一下,如果有菜单就直接取,如果没有就去数据库查询后绑定上去。这样每次可以直接取了,当然,你更新的话,app.locals上也要把菜单更新一下。