如何将数据从猫鼬模型显示/渲染到 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 文件中尝试访问像 <%= data.name %>
这样的值并访问另一个值 <%= data.phone % >
是的,我有这个:var myData = new RestInput(req.body),我在我的 .save() 方法中使用。
然后您需要将 thismyData
传递到您的 app.js
文件中,像这样进入您的 GET
路由中的 else
替换为这一行 res.render('find.ejs', 'data' : req.myData);
和您的 ejs
文件尝试访问 <=% data.phone %>
之类的值以上是关于如何将数据从猫鼬模型显示/渲染到 ejs 文件的主要内容,如果未能解决你的问题,请参考以下文章