在第一次加载页面之前设置cookie表示

时间:2018-05-23 20:14:35

标签: node.js express cookies

首次进入网站之前有没有办法设置Cookie?现在我在每个get操作开始时添加了这段代码:

if(!req.cookies.lang) {
    res.cookie('lang', 'en');
    res.redirect('back');
}

有没有更好的解决方案,所以在每次获取开始时都不需要添加此代码?

1 个答案:

答案 0 :(得分:1)

为避免代码重复,您可以添加一个中间件来处理每个GET的内容。

app.get('*', (req, res, next) => {
    if (!req.cookies.lang) {
        res.cookie('lang', 'en');
        return res.redirect('back');
    }

    next();
});

/* get routes */
app.get('/some/route', (req, res) => {
    // No need to check cookie, it was checked by the other middleware
    // ... 
});

/* ... */