router.get не работает, но router.get с идентификатором работает - PullRequest
0 голосов
/ 06 ноября 2019

вызов 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('/', async (req, 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 }`);

})

1 Ответ

0 голосов
/ 06 ноября 2019

Убедитесь, что структура ваших файлов соответствует вашему коду.

Для меня хорошо работает следующий код:

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('/', (req, res) => res.sendFile(path.join(__dirname, "../public/Surveypage.html")))

module.exports = router;
...