【问题标题】:Send session data to static files in NodeJS将会话数据发送到 NodeJS 中的静态文件
【发布时间】:2014-09-01 10:59:46
【问题描述】:

我的一个 NodeJS 路由如下所示:

app.get('/test1/', function(req, res) {
    res.redirect("index.html");
});

就在下面,我提供静态文件:

app.use(express.static(__dirname, '/public'));
app.use(bodyParser.urlencoded({ extended: false }));

我了解第一个代码块的作用,但不太了解第二个代码块。虽然 /public 目录中有 HTML 文件,但 index.html 依赖项 - JavaScript 和 CSS 文件 - 在 / 同级的其他文件夹中公开/

除此之外,我还设置了一个保存用户用户名的会话变量。我想将此用户名 发送 到 JavaScript 文件,当 index.html 在路由代码块中被重定向到时调用该文件。

这可以通过 JavaScript 和 HTML 实现吗?

【问题讨论】:

    标签: javascript html node.js


    【解决方案1】:

    浏览器向您的服务器发出请求,GET /,路由按该顺序匹配,因此它与/test 匹配,如果不匹配,则转到第二个路由,即, express.static 中间件。

    第二条路由服务于服务器中的静态目录。所以 express.static 将匹配公共目录中的每个文件。所以GET /index.html 将和GET /scripts/main.js 一样被提供。

    如果要发送会话变量,请发送用户 cookie。要发送 cookie,请将其设置在中间件中的响应参数上。

    app.use('/test1/', function(req, res) {
      res.cookie('key', 'value');
      res.render('stuff');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      相关资源
      最近更新 更多