javascript - 将值从 Controller 传递到模板引擎 - MVC 和 EJS

标签 javascript node.js express ejs

我正在尝试迭代用户列表并将其返回到模板引擎。由于某种原因,我收到一个错误,即对象不可迭代。

这是我的 Controller :

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() 一个 promise ?如果是这样,请将 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()
    }
)};

我希望这有帮助。

关于javascript - 将值从 Controller 传递到模板引擎 - MVC 和 EJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59051349/

相关文章:

javascript - Wordpress jQuery 脚本未在使用 jQuery.noConflict 的一个实例上启动

node.js - Curl -d 与 --data-binary

windows - 如何使用 node.js 服务器在 MS Windows 上移动鼠标光标?

javascript - 在 Express-JS 中将 example.com 路由到静态文件,但将 example.com/anything 路由到其他文件

javascript - Node.js app.post 不填充 MongoDB?

Javascript - 转换结束未触发

javascript - Google map 中自定义图 block 的背景图片

javascript - 在 PrimeNG 中扩展多个面板时如何修复损坏?

node.js - 如何在 Node Js API 中添加身份验证?

node.js - 将 Auth0 集成到 Node & Express 应用程序中