javascript - express .JS : Attach cookie to statically served content

标签 javascript node.js express

我使用 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/

相关文章:

javascript - 循环遍历数组并将结果输出到html

javascript - 当轮播中的图像为 1365 x 415 px 时,如何使轮播图像适合 1 7'' 或更多屏幕?

javascript - 对象 #<Server> 没有方法 'use' [Express+ShareJS]

javascript - 在 header 中传递访问 token 并在JavaScript中进行重定向

node.js - 区分nodejs请求和响应

node.js - 如何使用express设置iisnode?

javascript - 如何在 node express 中使用 angular 2 斜线路由?

javascript - 通过混合输入值在 DIV 内创建一个输入矩阵

php - php 文件的 OOP Diamond 问题 - 我应该如何处理?

javascript - 使用 Express 代理,如何更改相对 url?