Проблема с отображением функции Mongoose find() в EJS

#express #mongoose #ejs

#экспресс #mongoose #ejs

Вопрос:

Я пытаюсь загрузить и отобразить несколько рабочих записей из моей базы данных MongoDB с помощью mongoose и Express, и у меня возникают проблемы.

Когда я пытаюсь передать результаты в свой файл .ejs, я получаю сообщение об ошибке, что переменная не определена.

По какой-то причине это работает, когда я передаю отдельные объекты в файл .ejs.

Вот что работает, но бесполезно

 router.get('loadEntries', (req,res) => {
  Entry.find({}, function(err, data) {
    data.forEach(function(item) {
      res.render('loadEntries',{firstName:item.firstName});
    }
  });
});

//ejs file. Very basic, just to capture the data
<p>
    <%=firstName%>
</p>
  

Вот что я хотел бы сделать, но не работает

 router.get('loadEntries', (req,res) => {
  Entry.find({}, function(err, data) {
      res.render('loadEntries',{result:data});
    });
});

//ejs file
<p>
  <%result.forEach(function(item) { %>
    First name: <%=item.firstName%>
    Last name: <%=item.lastName%>
  <%})%>
</p>
  

Моя модель mongoose

 const mongoose = require('mongoose');

const EntrySchema = new mongoose.Schema({
  //hours, room, buliding, note
  hours: {
    type: Number,
    required: true
  },
  room: {
    type: String,
    required: true
  },
  building: {
    type: String,
    required: true
  },
  note: {
    type: String,
    required: false
  },
  firstName: {
    type: String,
    required: true
  },
  lastName: {
    type: String,
    required: true
  }
});

const Entry = mongoose.model('Entry', EntrySchema);

module.exports = Entry;
  

Комментарии:

1. можете ли вы опубликовать свою модель mongoose?

2. @dimitristseggenes Хорошо, я добавил свою модель mongoose. Тем не менее, я могу сохранять новые записи без проблем

3. Выглядит неплохо. Я не знаю, почему это не работает. Возможно, проблема в forEach цикле. Попробуйте использовать for .. of цикл, подобный этому <% for (let item of result) { %>

4. @dimitristseggenes да, он по-прежнему сообщает, что он не определен. Я в тупике. Всякий раз, когда я пытаюсь загрузить что-либо из базы данных и отобразить это с помощью этого метода, я сталкиваюсь с этой проблемой

5. каков результат console.log(data); before res.render ?