Передача параметра в запрос GET для получения указанной c информации - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь получить (GET) заданную c информацию на основе переданного параметра. Мой код выглядит так:

В index.js:

export var comments = (userId) => { 
    return new Promise((value) => {
        axios.get('http://localhost:1000/getreviews/:userId')
        .then((response) => {
            console.log(response.data.comment);
        })
    })
}

В routes.js:

router.route('/:userId').get((req, res) => {
    Users.find({user: req.params.userId}) 
        .then((reviews) => res.json(reviews)
    );
});

Поэтому я хочу получить соответствующую информацию. Чтобы дать более общее представление о том, что происходит - существует несколько модальных режимов, и при нажатии на указанную c единицу я хочу получить указанную c информацию из базы данных, а не получать всю информацию из базы данных, а затем выполнить извлечение соответствующей информации в index.js на основе идентификатора пользователя. Таким образом, я буду получать всю информацию о каждом модальном клике, которая неэффективна, поэтому я хочу ее избежать.

Ответы [ 2 ]

1 голос
/ 09 марта 2020

В чем именно проблема, Users.find({user: req.params.id}) не возвращает ожидаемое значение? mon goose имеет findById, который запрашивает в БД поиск объекта с указанным c id, в вашем случае:

Users.findById(req.params.userId) 
        .then((reviews) => res.json(reviews)
    );

edit: кажется, что вы передаете undefined как параметр find, обратите внимание, что имя переменной, которая хранится в params, должно совпадать с параметром, который вы указали в методе get, равном userId, поэтому вместо него используйте req.params.userId.

edit2: js часть

export var comments = (userId) => { 
    return axios.get(`http://localhost:1000/getreviews/${userId}`)
        .then((response) => {
            return response.data
        })

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

Написание запроса GET другим способом решило проблему:

axios({ 
            method: 'get',
            url: 'http://localhost:1000/getreviews/',
            params: {
                user: userId 
            })

Тогда я мог бы получить доступ к userId в routes.js через req.query.user, и это даст мне userId I только что прошел.

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