将会话数据发送到NodeJS中的静态文件

时间:2014-09-01 10:59:47

标签: javascript html node.js

我的 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?

1 个答案:

答案 0 :(得分:0)

浏览器向您的服务器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');
});