如何将数据库值从节点js传递到ejs文件

How to pass database values from node js to ejs file

您好,我正在尝试在主页中添加搜索栏并在不切换到其他页面的情况下在主页中进行搜索。 我的 user.js 文件

                       if (req.method == 'get'){
                            var username = req.query.username;
                            Users.find({username}, function (err, user)  {
                                if(err) {
                                    return res.render(template:'index')
                                }
                                res.render({template:'index', { user : user}});
                            })
                        }

我的index.ejs文件

<div class="search-user">   
    <% for user in user { %>
        <div>
            <p>Username : <%= user.username %></p>
            <p>Age <%= user.age %></p>
            <p>Status <%= user.status %></p>
        </div>
    <% } %>     
</div>

这给我错误。我可以知道我做错了什么吗?

参考Res.render()

                       if (req.method == 'get'){
                            var username = req.query.username;
                            Users.find({username}, function (err, user)  {
                                if(err) {
                                    return res.render('index')
                                }
                                res.render('index', { user });
                            })
                        }

添加控制台消息并检查您是否在用户对象中获取数据

if (req.method == 'get'){
                            var username = req.query.username;
                            Users.find({username}, function (err, user)  {
                                if(err) {
                                    console.log('error', error)
                                    return res.render('index')
                                }
                                console.log('user', user)
                                res.render('index', { user });
                            })
                        }

在迭代对象的用户之前,只需检查如下内容:

<div>
   <p>Username : <%= JSON.stringfy(user) %></p>
 </div>

这样你就知道哪里出错了