无法将Mongoose find()渲染为EJS

时间:2019-03-05 20:14:26

标签: express mongoose ejs

我试图使用mongoose和Express从MongoDB数据库中加载并显示几个工作条目,但遇到了麻烦。

当我尝试将结果传递到我的.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;

0 个答案:

没有答案