{-6ren">
gpt4 book ai didi

javascript - 每个 ejs 渲染调用上的 "Default"参数?

转载 作者:行者123 更新时间:2023-12-05 03:55:46 24 4
gpt4 key购买 nike

为了验证用户是否是管理员,我在所有我的 ejs 文件中执行以下代码

在 node.js 路由中,我在渲染 ejs 时将用户作为参数发送

 router.get('/', (req, res) => {
res.render('index.ejs',{query: req.session.username});
});

在我的前端,我只是这样做:

  <% if(query == 'pedrosarkis'){ %>
<li class="nav-item admin">
<a class="nav-link" href="/admin">Admin</a>
</li> <% } %>

“问题”(我猜是)是我的页面太多,这意味着我必须将用户名作为参数传递给每条路线,有没有办法在 ejs 出现时传递参数呈现?比如中间件之类的

最佳答案

很简单,使用locals对象,根据docs , 是

An object that contains response local variables scoped to the request, and therefore available only to the view(s) rendered during that request / response cycle (if any). Otherwise, this property is identical to app.locals.

This property is useful for exposing request-level information such as the request path name, authenticated user, user settings, and so on.

因此,在您的主要 js 文件(app.js、server.js,无论您如何命名)中,在您的路由定义之前,您可以使用以下中间件

app.use(function (req, res, next) {
res.locals.query = req.session.username;
next();
});

query 将在每个呈现的 ejs 文件中访问

关于javascript - 每个 ejs 渲染调用上的 "Default"参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59922945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com