gpt4 book ai didi

javascript - Express.js - 如何修改路由中的 app.locals 变量

转载 作者:IT老高 更新时间:2023-10-28 23:18:37 33 4
gpt4 key购买 nike

我有一个 node.js 项目。以下代码是我的 app.js 文件的一部分。我正在从数据库中进行查询并将结果存储在一个名为“Cats”的全局变量中。我正在使用此变量在站点的侧边栏上显示类别。我认为它不相关,但我使用 Jade 作为模板引擎。

var app = express()

var query = "SELECT * FROM findadoc.categories";
client.execute(query, [], function(err, results) {
if(err) {
res.status(404).send({meg: err});
}
else {
app.locals.cats = results.rows;
}
});

在其中一条 route ,我允许用户向数据库添加其他类别。我需要的是让“apps.locals.cats”变量使用新的类别集进行更新。无论如何我可以在我的 route 修改它吗?我尝试了以下方法,但没有成功。

router.post('/add', function(req, res, next) {
var cat_id = cassandra.types.uuid();
var query = "INSERT INTO findadoc.categories(cat_id, name) VALUES (?,?)";
client.execute(query, [cat_id, req.body.name], {prepare: true}, function(err, results) {
if(err) {
res.status(404).send({msg: err});
}
else {
cats = results.rows;
req.flash('success', "Category Added");
res.location('/doctors');
res.redirect('/doctors');
}
});
});

最佳答案

在 Express 4 中,您可以使用 req.appreq 访问 app。见 Request object API 文档。

Locals are available in middleware via req.app.locals (see req.app)

在您的中间件中,您可以这样做:

router.post('/add', function(req, res, next) {
// do some cool stuff
req.app.locals.cats = something;
// more cool stuff
});

关于javascript - Express.js - 如何修改路由中的 app.locals 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31634646/

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