Получить пользователя по строке запроса в Nodejs - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь получить пользователя по идентификатору или некоторым параметрам, но ответом всегда будут все пользователи. Я использую метод get без каких-либо запросов, только тест API, без какой-либо аутентификации.

код:

router.get('/:id', async (req, res) => {
    const user = await User.findById(req.query.id);
    if (!user)
        return res.status(404).send("The user with the given ID was not found.");
    res.send(user);
});

url: http://localhost: 4000 / api / user? Id = 5e6e8159fd64bf27042a8838

ответ всегда получают все пользователи

любая помощь плз

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Из вашего кода я могу понять, что ваш маршрут выглядит как router.get('/:id').

Это означает, что URL-адрес должен быть примерно таким: /user/{id}.

URL-адрес, который вы запускаете. /user?id={id} может не попадать по этому маршруту, поскольку в нем нет параметра {id}.

Фактический URL, который попал на этот маршрут, -

http://localhost:4000/api/user/5e6e8159fd64bf27042a8838.

И способ, которым вы должны прочитать идентификатор: request.params.id

Я подозреваю, что маршрут /user указывает на получение API всех пользователей, поэтому вы получаете ответы всех пользователей.

0 голосов
/ 16 марта 2020
* 1000000@main.c правильно. Что вы хотите сделать, это req.params.id,

req, запрос используется, когда вам нужно извлечь свойства запроса, такие как

/:id?sort=asc&discount=50

Тогда вы можете сделать req.query.sort или req.query.discount

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