Мопс - невозможно прочитать свойство 'длина' неопределенного при попытке перебрать объекты json - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь отобразить все результаты, полученные с помощью mongoose из моей базы данных, на моей веб-странице, но я продолжаю получать «Cannot read property 'length' of undefined» в моем файле index.pug, где я написал цикл each для итерациивозвращенный курсор json объектов, чтобы я мог их отобразить.Я новичок в выражениях, мангуст и мопс, поэтому у меня возникают проблемы с выяснением моей ошибки.

Вот фрагмент моего index.pug файла:

section(class="get")
h3 Get Data
a(href="/get-data") LOAD DATA
div
  each val in items
    article(class="item")
      div Title: #{val.title}
      div Content: #{val.content}
      div Author: #{val.author}
      div ID: #{val._id}

где items должен передаваться mongoose из приведенного ниже фрагмента express.js моего index.js файла:

router.get('/get-data', function(req, res, next) {
  // Use mongoose to find data from database
  UserData.find()
     .then(function(doc) {
       res.render('index', {items: doc});
     });
});

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

Невозможно прочитать свойство 'length' из неопределенного

С подробностями, указывающими на строку каждого моего цикла:

21|     a(href="/get-data") LOAD DATA
22|     div
23|  >    each val in items
24|         article(class="item")
25|           div Title: #{val.title}
26|           div Content: #{val.content}

Любое понимание этой проблемы будет оченьоценили.Спасибо!

1 Ответ

0 голосов
/ 20 сентября 2018

При запросе к базе данных у вас должны быть некоторые проблемы. Прежде чем использовать полученный результат, вы должны проверить, успешно ли выполнен запрос.Поскольку вы получаете свой результат, используя Promise, вы можете добавить catch после a, чтобы поймать любую ошибку, которая будет выдана

router.get('/get-data', function(req, res, next) {
  // Use mongoose to find data from database
    UserData.find({})
        .then(function(doc) {
           res.render('index', {items: doc});
        })
        .catch(function(error){
            console.log(error);
        });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...