Получение нулевого массива при извлечении всех документов данного массива с пользовательским uid

Я хочу получить все пользовательские документы массива подписчиков, который состоит из uid (string).

{
    "followers": [
        "GHfd4UbusVUV5Ofo3xU4gH3XDFv2", "W380Qbxq2vUTKuzQdOvdsrFyrjb2"
    ],
    "followings": [
        "GHfd4UbusVUV5Ofo3xU4gH3XDFv2"
    ]

Я отправляю массив последователей напрямую как idArray Я использую следующий код:

router.get('/a/:idArray', (req, res) => {
User.find({ uid: { $in : req.params.idArray}})
    .then(users => {
        res.json(users);
        console.info('array',users);
    })
    .catch(err => {
        console.info(err);
    });
});

Но я получаю нулевой массив. Где я делаю не так?

Как вы передаете массив в get со стороны клиента?

Jim B. 04.11.2018 05:45

пожалуйста, проверьте вопрос еще раз. Я его обновил. @JimB.

Sujoy 04.11.2018 06:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
43
2

Ответы 2

Вы не можете передать массив, подобный этому ["W380Qbxq2vUTKuzQdOvdsrFyrjb2", "GHfd4UbusVUV5Ofo3xU4gH3XDFv2"], в запрос GET.

Преобразуйте ваш массив на стороне клиента в значения, разделенные запятыми, и передайте как строку запроса

/a?idArray=W380Qbxq2vUTKuzQdOvdsrFyrjb2&idArray=GHfd4UbusVUV5Ofo3xU4gH3XDFv2

Для передачи сложных объектов необходимость URL-кодирования всего может стать проблемой, поэтому, хотя ответ @front_end_dev правильный, если ваш API становится более сложным, вы можете перейти к передаче данных в теле запроса POST:

router.post('/a', (req, res) => {
    User.find({ uid: { $in : req.body.uids }})
        .then(users => {
            res.json(users);
            console.info('array',users);
        })
        .catch(err => {
            console.info(err);
        });
});

тело будет выглядеть так:

{
    uids: [
        "GHfd4UbusVUV5Ofo3xU4gH3XDFv2", 
        "W380Qbxq2vUTKuzQdOvdsrFyrjb2"
    ]
}

Другие вопросы по теме