加载资源失败:服务器在路由上响应状态为 404(未找到)
Failed to load resource: the server responded with a status of 404 (Not Found) on routing
我正在尝试在我的项目中进行路由。我希望在点击连接按钮时,房间页面应该被渲染。主页工作正常,但一旦我点击连接,它就会显示 无法获取 /rooms/0b2636b5-c254-47f4-ade8-9e6b745a96d1。代码工作正常,而不是路由到根目录下的房间 url.
我是网络开发的新手,我尝试阅读有关类似问题的其他问题,但无法理解。
服务器端(Server.js):
const express = require('express');
const app = express();
const server = require('http').Server(app);
const { v4: uuidV4 } = require('uuid');
const io = require('socket.io')(server);
const { ExpressPeerServer } = require('peer');
const peerServer = ExpressPeerServer(server, {
debug: true
});
app.use('/peerjs', peerServer);
app.set('view engine', 'ejs');
app.use(express.static('public'));
app.get('/', (req, res) => {
res.render('home');
})
app.get('/rooms', (req, res) => {
res.redirect(`/rooms/${uuidV4()}`);
})
app.get('/rooms:room', (req, res) => {
res.render('room', { roomId: req.params.room })
})
server.listen(3000);
客户端(script.js)
const socket = io('/rooms');
const videoGrid = document.getElementById('video-grid');
var peer = new Peer(undefined, {
path: '/peerjs',
host: '/rooms',
port: '3000'
})
home.ejs
上的导航栏
<nav class="nav">
<li class="nav-link">
<a href="/rooms">Connect</a>
</nav>
room.ejs
<script>
const ROOM_ID = "<%=roomId%>"
</script>
<script src="/socket.io/socket.io.js" defer ></script>
<script src="script.js" defer></script>
文件结构
public
-script.js
观看次数
-home.ejs
-room.ejs
server.js
你真的很接近了,这块只有 1 个错误:
app.get('/rooms:room', (req, res) => {
res.render('room', { roomId: req.params.room })
})
应该是:
app.get('/rooms/:room', (req, res) => {
res.render('room', { roomId: req.params.room })
})
快速文档页面 here 以备不时之需(第 路由参数 部分)。
我正在尝试在我的项目中进行路由。我希望在点击连接按钮时,房间页面应该被渲染。主页工作正常,但一旦我点击连接,它就会显示 无法获取 /rooms/0b2636b5-c254-47f4-ade8-9e6b745a96d1。代码工作正常,而不是路由到根目录下的房间 url.
我是网络开发的新手,我尝试阅读有关类似问题的其他问题,但无法理解。
服务器端(Server.js):
const express = require('express');
const app = express();
const server = require('http').Server(app);
const { v4: uuidV4 } = require('uuid');
const io = require('socket.io')(server);
const { ExpressPeerServer } = require('peer');
const peerServer = ExpressPeerServer(server, {
debug: true
});
app.use('/peerjs', peerServer);
app.set('view engine', 'ejs');
app.use(express.static('public'));
app.get('/', (req, res) => {
res.render('home');
})
app.get('/rooms', (req, res) => {
res.redirect(`/rooms/${uuidV4()}`);
})
app.get('/rooms:room', (req, res) => {
res.render('room', { roomId: req.params.room })
})
server.listen(3000);
客户端(script.js)
const socket = io('/rooms');
const videoGrid = document.getElementById('video-grid');
var peer = new Peer(undefined, {
path: '/peerjs',
host: '/rooms',
port: '3000'
})
home.ejs
上的导航栏 <nav class="nav">
<li class="nav-link">
<a href="/rooms">Connect</a>
</nav>
room.ejs
<script>
const ROOM_ID = "<%=roomId%>"
</script>
<script src="/socket.io/socket.io.js" defer ></script>
<script src="script.js" defer></script>
文件结构
public
-script.js
观看次数
-home.ejs
-room.ejs
server.js
你真的很接近了,这块只有 1 个错误:
app.get('/rooms:room', (req, res) => {
res.render('room', { roomId: req.params.room })
})
应该是:
app.get('/rooms/:room', (req, res) => {
res.render('room', { roomId: req.params.room })
})
快速文档页面 here 以备不时之需(第 路由参数 部分)。