首页 > 解决方案 > 使用 bootstrap 和 nodejs 提交表单

问题描述

我正在使用 boostrap(通过 MDB 4)并试图让联系表正常工作。我的表格按预期呈现。</form>它在标签外包含以下按钮

    <a class="btn btn-primary" onclick="document.getElementById('contact-form').submit();">Send</a>

表格的开头行是:

    <form id="contact-form" name="contact-form" action="/contact" method="POST">

我正在尝试了解如何将表单内容获取到 nodejs 并在我的 Express 路由中包含以下内容

   app.post('/contact', function(req, res){
        console.log(req.body.name); 
        console.log(req.body.email);
        console.log(req.body.subject);
        console.log(req.body.message);
    // code to store here later
   });

我知道我正在打这个块,因为我可以从路由中控制文本,但每次都会出错:

     TypeError: Cannot read property 'name' of undefined

所有的例子似乎都使用 PHP,但我认为 nodejs 就足够了?我的盒子上没有 PHP,如果我可以留在 nodejs 中,我宁愿避免它。有人给我一些指示吗?

可能值得注意的是使用了 jquery,但我不知道这里是否有链接?以下是我的html脚下

    <script type="text/javascript" src="js/jquery.min.js"></script>

标签: node.jstwitter-bootstrap

解决方案


通过将以下内容添加到我的解决方案index.js

    const bodyParser  = require('body-parser');
    app.use(bodyParser.urlencoded());

现在当我console.log(req.body);得到:

{
  name: 'name',
  email: 'name@x.y',
  subject: 'test',
  message: 'test'
}

推荐阅读