加载资源失败:服务器在路由上响应状态为 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 以备不时之需(第 路由参数 部分)。