我使用 Express.JS 来提供静态内容:
express.use(express.static('./../'));
当提供 index.html
时,我想在响应旁边发送一个 cookie,指示用户是否已登录。通常应该使用 res.cookie()
但我看不出如何将它用于静态服务的内容。
最佳答案
不确定为什么需要这样做,但是您可以将自己的中间件放在 static
模块之前。
以下快速破解应该有效:
function attach_cookie(url, cookie, value) {
return function(req, res, next) {
if (req.url == url) {
res.cookie(cookie, value);
}
next();
}
}
app.configure(function(){
app.use(attach_cookie('/index.html', 'mycookie', 'value'));
app.use(express.static(path.join(__dirname, 'public')));
});
上面在 static
中间件之前,在中间件链中插入了另一个函数。如果 URL 与您要查找的特定网址相匹配,新层会将 cookie 附加到响应中,并将响应进一步向下传递到链中。
关于javascript - express .JS : Attach cookie to statically served content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343556/