【问题标题】:Page Not Rendering After MySQL INSERT With FormMySQL INSERT 表单后页面不呈现
【发布时间】:2018-10-09 04:56:49
【问题描述】:

我正在尝试在添加用户表单成功提交后呈现我的管理仪表板页面。插入用户时执行以下代码:

app.get('/insert-user',function(req,res,next){
  var context = {};
  pool.query("INSERT INTO user (`fname`, `lname`, `email`, `password`,`timestamp`,`company`) VALUES (?,?,?,?,NOW(),?)", 
  [req.query.fname, req.query.lname, req.query.email, req.query.password, req.query.company], 
  function(err, result){
    if(err){
      console.log(err);
      next(err);
      return;
    }
    res.render('adminDash',context);
  });
});

记录已成功插入到表中,但页面停留在填充的表单上并且不呈现adminDashadminDash 车把包含以下内容:

<h1>Admin Dashboard</h1>

<p><a href="http://18.219.103.143:3000/add-user">Add a User</a></p>
<p><a href="http://18.219.103.143:3000/edit-delete-user">Edit/Delete a User</a></p>
<p><a href="http://18.219.103.143:3000/add-admin-user">Add Admin User</a></p>
<p><a href="http://18.219.103.143:3000/edit-delete-admin-user">Edit/Delete Admin User</a></p>
<p><a href="http://18.219.103.143:3000/admin-login">Generate Report</a></p>

addUser 表单包含以下内容:

<form id="userForm">
        <fieldset>
            <legend>Add User</legend>
            <p>First Name: <input id="fname" type="text" name="fname"/></p>
            <p>Last Name: <input  id="lname" type="text" name="lname"/></p>
            <p>Email: <input id="email" type="text" name="email"/></p>
            <p>Company: <input id="company" type="text" name="company"/></p>
            <p>Password: <input id="password" type="text" name="password"/></p>
            <button type="button">Attach Signature</button>
        </fieldset>
        <input id="addUser" type="submit" name="add" value="Add User" onclick="addRow()" />


</form>

<script src="script.js"></script>

我是否在错误的位置进行了渲染?它试图渲染的页面有问题吗?谢谢!

【问题讨论】:

  • 为什么你在你的链接中使用硬核18.219.103.143:3000 如果你改变主机/IP 你可以再次改变所有这些链接。
  • @RaymondNijland 对。为了可扩展性,我将更改为常量。不过,我认为这不会导致我的问题。
  • " 但是,我不认为这会导致我的问题。"确实

标签: html mysql node.js handlebars.js


【解决方案1】:

试着这样做

models.User.create(function({
         //Your Query goes here
})
.then(function(result){
  res.render('',{
   result:result

});

}).catch(function(err){
 console.log(err);
})

and in your ADmin Dashboard try to call this Result in a forEach loop

<% result.forEach(results) %>

【讨论】:

  • 这整个部分? pool.query("INSERT INTO user (fname, lname, email, password,timestamp,company) VALUES (?,?,?,?,NOW(),?)", [req.query.fname, req.query.lname, req.query.email, req.query.password, req.query.company], function(err, result){ if(err){ console.log("Company does not exist"); next(err); return; } res.render('adminDash',context); });
  • 只有你的查询直到 req.query.company
  • 我的插入函数现在是这个,但我收到语法错误app.get('/insert-user',function(req,res,next){ var context = {}; models.User.create(function({ pool.query("INSERT INTO user (fname, lname, email, password,timestamp,company) VALUES (?,?,?,?,NOW(),?)", [req.query.fname, req.query.lname, req.query.email, req.query.password, req.query.company], }) .then(function(result){ res.render('',{ result:result }); }).catch(function(err){ console.log(err); }) }); ); });
  • 尝试根据您的问题编辑此内容无需现在进行查询这是查询的 Sequelize 方法
  • 我不确定我是否理解。道歉。但我只是对上述所有代码适合我现有结构的地方感到困惑。
【解决方案2】:
{
                models.Page.findOne({
                    where :{slug:slug}
                    })
                            models.Page.create({
                                title: title,
                                slug: slug,
                                content: content,
                                sorting: 0
                            })

                                .then((page)=>{

                                req.flash('success', 'Page added!');
                                res.redirect('/admin/pages');
                            })
                            .catch((err) => {
                            console.log(err);
                            })
                        }
                    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2019-01-28
    相关资源
    最近更新 更多