node.js - 使用 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>
解决方案
通过将以下内容添加到我的解决方案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'
}
推荐阅读
- javascript - 是否可以在“命中”页面顶部的位置修复表头?
- informatica - Informatica-Cloud:如何在一个映射中使用两个不同结构的源文件?
- rabbitmq - RabbitMQ 通道空闲问题 | 如何恢复未确认的 AMQP 消息 | Java客户端消费者
- c++ - C++ 无法识别溢出 (Windows)
- jquery - PUT 请求不更新 MongoDB
- javascript - 剑道动态网格
- java - linux下使用Tomcat 7无法连接SQL Server 2014数据库
- python - 如何在支持以太网的 delta plc 和 python pymodbustcp 之间进行通信
- llvm-clang - 使用的方法跳转到下一行而不是跳转参数
- azure-devops - 从 azure devops 中的单个存储库发布多个 nuget 包