使用mongo / mongoose的Express中的全局变量

时间:2018-07-25 20:41:39

标签: javascript node.js express mongoose

我使用res.locals来使用express使用全局变量。

示例:

app.use(function(req, res, next){
    res.locals.currentUser = req.user;
    res.locals.error = req.flash("error");
    res.locals.success = req.flash("success");
    next();
});

我该如何做:

Topics.find(); // Using mongoose

找到所有主题,然后将其存储在res.locals内的app.use中?

2 个答案:

答案 0 :(得分:1)

类似

app.use(async function(req, res, next){
    try {    
        res.locals.currentUser = req.user;
        res.locals.error = req.flash("error");
        res.locals.success = req.flash("success");
        res.locals.topics = await Topics.find().lean();
        next();
    } catch (err) { 
        next(err);
    }
});

答案 1 :(得分:0)

您是否要缓存查找结果?如果是这样,只需在包含存储值的应用程序范围之外设置一个变量。如果要刷新缓存的结果,只需设置一个间隔即可。