объект в документе mongo отображается неопределенным в EJS

#node.js #express #mongoose #ejs

Вопрос:

Я использую этот код для вызова данных из MongoDB с помощью npm mongoose. Приложение основано на NodeJS, express и EJS.

 router.get('/getdata' ,(req, res) => {
  
    User.findOne({email: email2}).exec().then(user =>{
      if (user) {
        if (user.isEvent === "Yes"){
          Event.find().populate("creator").exec().then(events =>{
console.log(events[7].creator.name);
            res.render('viewfile', {
              userinfo: req.userinfo,
              events: events,
              user
            });
          })
        } else{
          console.log(user.isEvent);
          res.render('no-access', {
            userinfo: req.userinfo,
            user
          });
        }
        
      } else {
        
        res.render('noaccess', {
          userinfo: req.userinfo,
          user
        });
      }
    })
})
 
 console.log(events[7].creator.name); 
 

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

 <td><%= events[i].creator.name %></td>
 

Есть какие-нибудь советы о том, что я делаю не так?

Ответ №1:

неважно. Я все исправил. В массиве было несколько событий, которые не имели никакого значения в БД. Почистил его починил