我的 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?
答案 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');
});