我一直在努力寻找以下代码中的错误来源:
const express = require("express");
const path = require("path");
const WebSocket = require("ws");
const SocketServer = WebSocket.Server;
const PORT = process.env.PORT || 3000; // port to listen on
const INDEX = path.join(__dirname, "index.html"); // index address
var server = express();
server.use((req, res) => res.sendFile(INDEX));
server.listen(PORT, () => console.log(`Listening on port ${ PORT }`));
const wss = new SocketServer({server}); // wss = web socket server
(我在下面有用于连接等的代码,这与我认为的这个问题无关)
运行此程序后,我在浏览器中收到来自客户端的以下错误:
与“ws://localhost:3000/”的 WebSocket 连接失败:在收到握手响应之前连接已关闭
令我困惑的是,如果我进行以下更改,代码就可以工作:
var server = express()
.use((req, res) => res.sendFile(INDEX));
.listen(PORT, () => console.log(`Listening on port ${ PORT }`));
这种方法的问题是在现有的.use之前添加另一个.use不起作用,这是访问静态文件所必需的(即javascript作为它自己的文件而不是在HTML文件中)
为什么在这两个示例之间更改我的代码会破坏它?我能做些什么来解决这个问题?
谢谢