我的客户端有以下表格:
<form action="game" method="get"> <input type="text" name="name"/> <input type="submit" /> </form>
我的服务器中有这个脚本:
app.get('/game',function(req,res){ res.sendfile(__dirname + '/game.html'); });
使用bodyParser.urlencoded()中间件:
bodyParser.urlencoded(
const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true }));
然后,表单值将在req.body上:
app.post('/game', function (req, res) { res.render('the_template', { name: req.body.name }); });
设置{ extended: true }允许bodyParser接受包括嵌套对象在内的表单数据中的json之类的数据。例如,{ person: { name: Adam } }使用javascript发送而不是使用传统HTML格式发送的名称/值对。如果不需要,可以将扩展值设置为false。不定义扩展选项(即使用默认设置)显然已被弃用,他们似乎希望您决定是否需要嵌套选项或纯名称值对。
{ extended: true }
{ person: { name: Adam } }
如果您希望能够在快递服务器中解析某些路由的表单数据和其他路由的json数据,则可以使用:
app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: <true|false> }))
urlencoded() 适用于x-www-form-urlencoded内容类型
urlencoded()
true
false
json() -适用于application / json内容类型
json()
请注意,form / multipart需要不同的正文解析器(例如multer)