gpt4 book ai didi

node.js - 如何添加数据以自动将数据添加到每个 Express res.render 调用?

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:53 25 4
gpt4 key购买 nike

在我的 Express 4 服务器中,我有一个中间件功能,可以检查用户是否登录并相应地调整请求。

app.use((req, res, next) => {
const { IdToken } = req.signedCookies;
if (!IdToken) {
req.signedIn = false;
} else {
// TODO: Verify IdToken
req.signedIn = true;
}
next();
});

目前,在每条 route ,我都手动将登录状态添加到每个 res.render

router.get('/', (req, res) => {
res.render('index', { signedIn: req.signedIn });
});

我可以以某种方式包含此信息,而不需要手动将其添加到每个 res.render 调用中吗?

最佳答案

添加一个中间件,该中间件添加 req.view 函数和 req.addState 函数。

function addViewer(req, res, next) {
req.state = {}
req.addState = function(key, value) {
req.state[key] = value
}
res.view = function(viewName, moreState) {
res.render(viewName, Object.assign({}, req.state, moreState));
}
next();
}

现在您可以调用 res.view 而不是 res.render。请注意,您可以使 View 功能更加强大,并且 addState 更加可定制。

关于node.js - 如何添加数据以自动将数据添加到每个 Express res.render 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519826/

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