router.get不起作用,但具有id的router.get起作用

致电http://localhost:5000/surveycreate/4可以使我重定向到 surveypage.html

但是调用http://localhost:5000/surveycreate无效,它将我的主index.js文件重定向到公用文件夹中,甚至不显示“常规获取”

为什么会这样?

路线中的surveypage.js

const path = require("path");
const router = express.Router();

router.use(express.static(path.join(__dirname,"../public")));

router.get('/:id',async (req,res) => {

  console.log("get with id");
  res.sendFile(path.join(__dirname,"../public/Surveypage.html"));

})

router.get('/',res) => {

  console.log("regular get");
  res.sendFile(path.join(__dirname,"../public/Surveypage.html"));

})


module.exports = router; ```
==============================================================================
index.js of node:

const surveyPage = require('./routes/surveypage')

const app = express();
app.use(express.json());
app.use('/surveypage',surveyPage)
app.use(express.static(path.join(__dirname,"/public")));
app.use(cors())
const PORT  = process.env.PORT || 5000
app.listen(PORT,() => {
    console.log(`Listenning on porst ${PORT }`);

})
wu540642448 回答:router.get不起作用,但具有id的router.get起作用

确保文件的结构与代码相符。

以下代码对我来说效果很好:

app.js:

const express = require("express");
const app = express();
const cors = require("cors")
const surveyPage = require('./routes/surveypage')
const path = require("path");
const PORT = process.env.PORT || 5000

app.use(express.json());
app.use('/surveypage',surveyPage)
//app.use(express.static(path.join(__dirname,"/public"))); // not needed
app.use(cors())


app.listen(PORT,() => console.log(`Listenning on porst ${PORT }`))

surveypage.js

const path = require("path");
const express = require('express')
const router = express.Router();

router.use(express.static(path.join(__dirname,"../public")));
router.get('/:id',(req,res) => res.sendFile(path.join(__dirname,"../public/Surveypage.html")));
router.get('/',"../public/Surveypage.html")))

module.exports = router;
本文链接:https://www.f2er.com/3155548.html

大家都在问