Проблема с отображением Mongoose find () в EJS - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь загрузить и отобразить несколько рабочих записей из моей базы данных 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>

Моя модель мангуста

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;
...