Express.js | Экспресс. Маршрут и ввод параметров маршрута - PullRequest
0 голосов
/ 24 июня 2018

У меня проблема с маленькой программой, которую я пишу для практики Express.js.

У меня есть отдельный маршрутизатор, на который я хочу отправить ответ в зависимости от маршрута. Так что, если перейти к "/ santiago", он должен отправить "Hi Santiago", но сейчас он отправляет "Hi undefined". Код роутера name.js:

//name.js
const express = require('express');
const router = express.Router();

router.get('/', (req,res)=>{
    res.send("Hi " + req.params.name);
});

module.exports = router;

А вот код app.js:

//app.js
const express = require('express');
const app = express();
let port = process.env.PORT || 3000;
app.listen(port);

const name = require('./name');

app.use('/:name', name);

app.get('/', (req,res)=>{
    res.send("Welcome");
});

Что не так?

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Вам необходимо отметить параметр в маршруте.Попробуйте что-то вроде этого:

app.get('/:name', (req,res) => {
    const { name } = req.params
    res.send("Hi " + name)
});
0 голосов
/ 24 июня 2018

Ваш маршрутизатор не получает параметр. Установите параметр для вашего name.js (роутер):

router.get('/:name', (req,res)=>{
    res.send("Hi " + req.params.name); 
});

И ваш корневой маршрут на server.js:

app.use('/', name);

Обычно ваш маршрутизатор будет вызываться с правами root, но ожидается параметр.

Это должно решить вашу проблему, и «Добро пожаловать» все равно будет напечатано в корне. Это связано с тем, что маршрутизатор ожидает параметр, поэтому в противном случае будет запущен последний метод app.get.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...