javascript - 如何修复我的 EJS 引用错误:未定义朋友(变量)?
问题描述
我正在创建一个名为 makeFriend 的网站。当用户添加好友时,好友将被保存到数据库中。之后,我从数据库中获取数据并将其设置为 Friends 变量。在 Ejs 文件中,我尝试将朋友写入屏幕,但出现 EJS 引用错误:未定义朋友。
即使我在这个函数中定义了“朋友”,我也得到了错误。
// Friend is the model of my mongo database
Friend.find({}, function(err, friends){
if(err){
console.log(err);
}else{
console.log(friends, {friends: friends});
}
});
res.render("site.ejs");
});
我想在我的网站中将数据显示为列表:
<div class="container jumbotron text-center">
<h1>YOUR FRIENDS WILL BE HERE</h1>
<%friends.forEach(function(friend){%>
<li id="friend"><%= friend.name %> - <%= friend.surname %></li>
<%});%>
</div>
但我得到了错误:
15| <div class="container jumbotron text-center">
16| <h1>YOUR FRIENDS WILL BE HERE</h1>
>> 17| <%friends.forEach(function(friend){%>
18| <li id="friend"><%= friend.name %> - <%= friend.surname %></li>
19| <%});%>
20| </div>
friends is not defined
at eval (eval at compile (/home/guney/simpleWebApp/node_modules/ejs/lib/ejs.js:633:12), <anonymous>:22:7)
解决方案
您的 EJS 程序不会从调用render
.
您必须明确传递数据:
res.render("site.ejs", { friends });
您还需要在friends
实际存在的地方执行此操作。请参阅如何从异步调用返回响应?.
推荐阅读
- c++ - 如何通过 Main 函数访问我的第二堂课?
- leptonica - Golang for Windows tesseract-ocr 4.0 dev 编译错误
- tkinter - 使用 python 和 tkinter 启动和停止线程
- reactjs - 如何使用 Cytoscape.js 创建功能性 React 组件?
- python - 带有pynput的Tkinter全局键不起作用
- powershell - 获取 Windows 防火墙组是否包含所有启用规则
- javascript - localStorage 中的订单数据
- python - 我有一个很大的字符串作为字符串,需要在其中找到一个特定的单词并返回它后面的数字
- flutter - 在初始化程序中只能访问静态成员。将数据输入作为字符串抓取,转换为双精度。为什么这行不通?
- flutter - 在颤振/飞镖中对未来错误进行单元测试的正确方法是什么?