今天在写代码的时候发现express框架获取用户输入数据的时候一直返回的是空对象;
遇到这种情况,首先检查是否引入中间件解析req.body中的内容:
有两种方式,
一种直接使用第三方中间库bodyParser:
先在终端用npm安装bodyParser,并在文档中插入如下语句
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
另外一种就是利用express中集成的bodyParser:
直接在文档中插入:
app.use(express.static(__dirname+'/public'));
我发现上面的措施都没有解决我的问题,所以我输出了req整体的内容去看,发现req.body在没有解析前已经为空,所以我去html文件中看了一下,发现input一定要有name属性,如:
邮箱:<input type="email" name="email"><br><br>
因为在这里,name相当于key,还有一个属性value相当于值(此属性可以省略)
当然,我这里是因为自己的书写失误,出现了语法错误,两个属性之间加了逗号,但是并不报错,所以一直没有找到原因,我是这样写的:
邮箱:<input type="email",name="email"><br><br>
这个问题真的很简单,但是确实很难找,记录mark一下