如何将数据从猫鼬模型显示/渲染到 ejs 文件

Posted

技术标签:

【中文标题】如何将数据从猫鼬模型显示/渲染到 ejs 文件【英文标题】:How can I display/render data from mongoose model to ejs file 【发布时间】:2020-06-26 18:21:34 【问题描述】:

我是编程新手。我有一个名为“RestInput”的猫鼬模型。我正在尝试弄清楚如何使用猫鼬在 .ejs 文件中呈现和显示信息。

在 app.js 中

router.get('/find',(req,res) => 
  RestInput.find(, function(err,data)  
    if(err)
        console.log(err);
        res.send(500).status;
    
    else 
        res.render('find.ejs', data : data);
                    
  );
);

在 RestSchema.js 中

var express = require("express");
var mongoose = require("mongoose");

var restaurant = new mongoose.Schema(
  name: String,
  description: String,
  location: String,
  phone: Number

);
module.exports = mongoose.model("RestInput", restaurant);

在我的 .ejs 文件中

 <% data.forEach(function (items)  %>
        <td> <%= items.name %> </td>
        <td> <%= items.description %> </td>
        <td> <%= items.location %> </td>
        <td> <%= items.phone %> </td>
      <% ) %>  
     </tr>

数据已成功保存,但当我尝试访问我的 ejs 文件时,我收到一条错误消息,指出数据未定义。

如果您能帮助我,我将不胜感激。

【问题讨论】:

我看不出该代码会抛出该错误的任何原因。如果要打印,控制台中的数据输出会是什么? 不需要添加ejs文件终止。错误没有得到正确处理。您可以为此使用下一个功能或例如: res.status(500).send(err.message); 当我显示数据时,电话属性没有出现。我不知道为什么会这样。请帮忙。 【参考方案1】:
<table>
 <tr>
  <th>Dta</th>
</tr>
//Here I used variableName as Variable
<% for (var i = 0; i < variable.length; i++)  %>
<tr>
  <td><%= variable[i].name %></td>
  <td><%= variable[i].description %></td>
  <td><%= variable[i].location %></td>
  <td><%= variable[i].phone %></td>
</tr>    
<%  %>
</table>

【讨论】:

我这样做了,但电话属性仍然没有出现。似乎这个特定的属性根本没有保存在数据库中。 您是否创建了 Schema 的实例?如果您创建像 const restaurant = new Restaurant 这样的实例,那么您需要传递 res.render('find.ejs', 'data' : req.restaurant); 并在您的 ejs 文件中尝试访问像 &lt;%= data.name %&gt; 这样的值并访问另一个值 &lt;%= data.phone % &gt; 是的,我有这个:var myData = new RestInput(req.body),我在我的 .save() 方法中使用。 然后您需要将 thismyData 传递到您的 app.js 文件中,像这样进入您的 GET 路由中的 else 替换为这一行 res.render('find.ejs', 'data' : req.myData); 和您的 ejs 文件尝试访问 &lt;=% data.phone %&gt; 之类的值

以上是关于如何将数据从猫鼬模型显示/渲染到 ejs 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从猫鼬模型制作graphql?

你如何从猫鼬中删除模型?

EJS:如何在 EJS 文件中呈现来自猫鼬的两个或多个填充集合

如何从猫鼬集合中检索模式?

渲染 EJS 视图中的 Mongoose 对象到 CSV

从猫鼬模型传递嵌套的 JSON 数据不起作用