javascript - 如何发送一个 HTML 文件,然后一旦客户端请求,发送一个不同的?
问题描述
注意:我使用的是 node.js、express.js 和 socket.io。
我正在尝试创建一个网页,当用户连接时,它将从一个 .html 页面(称为homepage.html)显示,但根据请求,将发送一个不同的 .html 文件(称为lobby.html)进行显示.
所以我的问题是:如何最初发送一个 .html 文件,然后根据要求发送另一个文件?
server.js -
var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
http.listen(3000, () => {
console.log('listening on *:3000');
});
app.get('/', (req, res) => {
res.sendFile(__dirname + '/homepage.html');
});
这成功地将我的homepage.html发送到要显示的客户端浏览器。但是,我希望能够发送一个完全不同的 .html 文件来响应客户端请求。通过在我的homepage.html文件中包含以下内容,我是否走在正确的轨道上...
app.get('lobby', (req, res) => {
res.sendFile(__dirname + 'lobby.html');
}
...然后在我的server.js*中,添加类似...
let http = require('http');
const options = {
hostname: "/",
port: 3000,
method: "GET"
}
const req = https.request(options, res => {
; // How do I display the response .html file?
});
// when a button or something is clicked, request
// lobby.html
req.write();
req.end();
非常感谢你的帮助!
埃里克
解决方案
是的,这
/lobby.html
就是我想要为响应请求而提供的服务/lobby
。
然后只需将您更改server.js
为此(即添加新get
映射):
var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
http.listen(3000, () => {
console.log('listening on *:3000');
});
app.get('/', (req, res) => {
res.sendFile(__dirname + '/homepage.html');
});
app.get('/lobby', (req, res) => {
res.sendFile(__dirname + '/lobby.html');
});
推荐阅读
- java - Mapreduce 如何链接 Mapper >> Reducer >> Reducer
- angular - 使用路由参数定义变量。但如果找不到参数,请保持未定义
- python - Python如何遍历文件目录让程序知道如何遍历到最后一个文件
- swift - 使用 AnyObject 访问 swift 字典成员
- javascript - 量角器打字稿:ts 案例的突然错误意味着我无法编译以将测试作为 js 文件运行
- python - Django ORM通过2级外键关系获取数据
- javascript - 如何保存到服务器动态添加的行
- python - 熊猫从列中删除所有特殊字符
- python - 在 python 中使用 compile 和 eval 时出现奇怪的问题
- android-studio - 如何在正确的编辑器(拆分视图)中打开文件?