javascript - 将值从控制器传递到模板引擎 - MVC 和 EJS
问题描述
我正在尝试迭代用户列表并将其返回给模板引擎。出于某种原因,我收到一个错误,即对象不可迭代。
这是我的控制器:
const Bug = require('../models/bugs');
const bodyParser = require('body-parser');
const User = require('../models/user');
exports.getAddBug = (req, res, next) =>{
res.render('add-bug', {
pageTitle: 'Add a bug',
path: '/add-bug',
user: req.session.user.fullName,
allUsers : User.find()
}
)};
有一个 EJS 文件,所有用户值都应传递到该文件:
<ion-item>
<% for (let user of allUsers) { %>
<ion-label>Assigned to</ion-label>
<ion-select name="assignedTo" placeholder="Select One">
<ion-select-option selected value="<%= user.fullName%>"><%= user.fullName%></ion-select-option>
</ion-select>
<% } %>
</ion-item>
解决方案
返回你的 User.find() 一个承诺?如果是这样,请让您的 getAddBug 成为异步函数并像这样等待 User.find() :
exports.getAddBug = async (req, res, next) =>{
res.render('add-bug', {
pageTitle: 'Add a bug',
path: '/add-bug',
user: req.session.user.fullName,
allUsers : await User.find()
}
)};
我希望这会有所帮助。
推荐阅读
- c++ - 调用 transformNodeToObject 失败
- xslt - 在 XSLT 中选择节点的各种位置
- react-native - 如何在图像上显示相机图标
- c# - AWS:在 Amazon 中自动调用 API
- javascript - 在滚动时更改选取框方向而不更改其当前位置
- jquery - 当我在 jquery 中调用 ID 时表单不提交,但是当我将 id 更改为类时表单提交
- asp.net-core-webapi - 如何删除 WebAPI 核心中的 WebDAV 模块?
- html - 允许在 Electron 中使用需要外部文件的 HTML 文件
- angular - 对 *ngFor 使用带有三元运算符的自定义管道
- node.js - 将 LoopBack4 连接到 REST API 和 Swagger