在 node.js express 中通过 body-parser 发布表单数据时,数据总是 'undefined'
Data is always 'undefined' when POSTing form data through body-parser in node.js express
为清楚起见,我已将表格简化为以下内容:
<form method="post" action="/form" id="testform" enctype="application/x-www-form-urlencoded" name="testform" novalidate>
<input type="text" class="form-control" id="name" >
<button type="submit" class="btn btn-dark btn-lg">Generate XML</button>
</form>
在我的主 js 文件中有以下内容:
var bodyParser = require('body-parser')
// create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: true })
我正在此处接收数据(或不接收,视情况而定):
.post('/form', urlencodedParser, function (req, res) {
res.send('welcome, ' + req.body.name)
console.log(req.body)
})
我得到的只是 "welcome, undefined",日志显示为空 - {}
这让我无法自拔 我该如何检查发送的内容?调试这太疯狂了!
我认为您缺少 <input>
元素上的 name
属性:
<input type="text" class="form-control" id="name" name="name">
您已经设置了 id
,但只能用于 CSS select 或 (#name
)、链接(访问 #name
将 select 输入)和 <label>
元素(使用 for="name"
)。
元素由服务器端的名称参数识别。您需要在输入标签中添加名称属性。
为输入元素提供 name
属性作为 "name"
,代码将正常工作。
为清楚起见,我已将表格简化为以下内容:
<form method="post" action="/form" id="testform" enctype="application/x-www-form-urlencoded" name="testform" novalidate>
<input type="text" class="form-control" id="name" >
<button type="submit" class="btn btn-dark btn-lg">Generate XML</button>
</form>
在我的主 js 文件中有以下内容:
var bodyParser = require('body-parser')
// create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: true })
我正在此处接收数据(或不接收,视情况而定):
.post('/form', urlencodedParser, function (req, res) {
res.send('welcome, ' + req.body.name)
console.log(req.body)
})
我得到的只是 "welcome, undefined",日志显示为空 - {}
这让我无法自拔 我该如何检查发送的内容?调试这太疯狂了!
我认为您缺少 <input>
元素上的 name
属性:
<input type="text" class="form-control" id="name" name="name">
您已经设置了 id
,但只能用于 CSS select 或 (#name
)、链接(访问 #name
将 select 输入)和 <label>
元素(使用 for="name"
)。
元素由服务器端的名称参数识别。您需要在输入标签中添加名称属性。
为输入元素提供 name
属性作为 "name"
,代码将正常工作。