Node.js Nodejs博客站点不会在编辑设置页面中显示当前电子邮件

Node.js Nodejs博客站点不会在编辑设置页面中显示当前电子邮件,node.js,mongodb,Node.js,Mongodb,我的nodejs博客站点不会在编辑设置页面中显示我当前的电子邮件。它只显示正确的名称。对于电子邮件编辑用户设置:它显示:[对象]来自mongodb的每封电子邮件都应显示正确的电子邮件。不确定我是否也需要app.get和app.post app.js: app.get('/editUserSettings', (req, res) => { User.findOne({ email: req.body.email }, function(err, user) {

我的nodejs博客站点不会在编辑设置页面中显示我当前的电子邮件。它只显示正确的名称。对于电子邮件编辑用户设置:它显示:[对象]来自mongodb的每封电子邮件都应显示正确的电子邮件。不确定我是否也需要app.get和app.post

app.js:

app.get('/editUserSettings', (req, res) => {
        User.findOne({ email: req.body.email }, function(err, user) {
            const email = User.findOne(req.body.email)
            if (!err) {
                res.render("editUserSettings", {
                    user: user, email: email
                });
            }
        });
    });
editUserSettings.ejs

<%- include("partials/header") -%>

<div class="ui main text container segment">
    <div class="ui huge header">Edit my Profile </div>
    <form class="ui form" action="/editUserSettings/<%= currentUser._id %>?_method=PUT" method="POST">
        
        <div class="field">
            <label>Name</label>
            <input type="text" name="name" value="<%=currentUser%>" >
        </div>
        <div class="field">
            <label>Email</label>
            <input type="text" name="email" value="<%=email %>" >
        </div>
        <button class="ui violet basic button">Submit</button>
    </form>
</div>

<%- include("partials/footer") -%>

编辑我的个人资料
名称
电子邮件
提交

your User.findeOne返回一个对象,其中包含架构中定义的属性和数据库条目的唯一id,请尝试console.log(电子邮件)在findOne行之后,它应该记录如下内容:

{
  _id: XXXXXXXXXXXX,
  email: example@youremail.de
}

另外,如果您使用mongoose作为mongodb的客户端,您需要异步等待您的代码,因为User.findOne会返回一个承诺,也许可以通过我的discord lausnens(6598)联系我,我可以帮您更好一点:)

(不相关,但是)如果没有中间层,您应该在将用户输入直接发送到数据库查询之前对其进行清理。您好,我在discord blackmesa1983中向您发送了请求。顺便说一句,我将异步添加到了我的函数中,并执行了console.log(电子邮件),我注意到它显示了我在mongodb中注册的第一封电子邮件。例如,当我使用第二个帐户登录时,用户名显示正确,但显示的原始电子邮件地址与用户名不匹配。我认为应该显示正确的邮件,您是否检查了数据库?可能每个帐户在我们的数据库中都有相同的电子邮件。有3个不同的电子邮件帐户。当我登录到任何帐户时,它会显示所有3个帐户的相同电子邮件,但名称不同。请执行以下操作,进入您的数据库运行
使用您的\u DATABASENAME
,然后运行
db.your\u COLLECTION.find()
在那里您看到所有条目,检查那里的电子邮件。我确实运行了db.users.find().pretty()我看到3个电子邮件帐户和3封不同的电子邮件,当我使用我的主gmail帐户(我博客中的注册用户)登录时,我看到了正确的一个,但我登录的其他2个用户名显示了原始的主gmail帐户。它为3个不同的用户显示相同的电子邮件地址。