Цикл по массиву данных Mongoose - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь получить массив данных из Mongoose, перебрать массив и добавить объект в сцену Three.js для каждого элемента в массиве.

Когда я пытаюсь визуализировать сцену в браузере, я получаю сообщение об ошибке:

"client_world.js: 37 Uncaught (in обещание) TypeError: данные не повторяются в getData"

Однако когда я консоль регистрирую данные в запросе get, запрашивающем базу данных, он печатает все записи данных в виде массива, sp, они должны быть итеративными.

Я думаю, что, возможно, данные не поступают в файл javascript.

Вот код для получения данных из базы данных:

const indexVR = (req, res) => {
    Upload.find({})
    // .populate('Upload')
    .exec(function (err, docs) { 
        if (err) res.send(err)
        // docs.toString()
        res.json(docs)
        console.log(docs)
    })
};

эта функция находится вget req:

router.get('/indexvr', FileCtrl.indexVR);

Это фрагмент кода из файла js:

getData()

async function getData() {
  const response = await fetch('/api/indexvr');
  const data = await response.json;
  console.log(data)

   for (item of data) {
    try {
     scene.add( cube );
    } catch (e) {
     console.error(e)
}
  }
}   

ничего при входе в консоль в функции getData, однако браузер читает некоторыевид пустого объекта json.

.. Кто-нибудь знает, что я делаю неправильно?

1 Ответ

1 голос
/ 25 сентября 2019

Ваша проблема может быть такой же простой, как вызов метода .json вместо обращения к нему.

Ссылаясь на этот документ: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch .json - это метод объекта ответа, который возвращаетсяиз fetch.

Попробуйте использовать const data = await response.json();

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