我在 program.But 中使用 koa,koa-router,koa-body this.reauest.body 的值是“{}”
I use koa,koa-router,koa-body in my program.But the value of this.reauest.body is "{}"
我使用 "form" 将数据发送到我的网络服务器。
前端:
<form action="http://localhost:3131/users" method="POST" enctype="multipart/form-data" target="_blank">
<fieldset>
<label for="name">Name:</label>
<input type="text" id="name" name="name"/>
</fieldset>
<fieldset>
<label for="age">Age:</label>
<input type="text" id="age" name="age"/>
</fieldset>
<fieldset>
<label for="wl">Wl:</label>
<input type="text" id="wl" name="wl"/>
</fieldset>
<fieldset>
<input type="submit" value="Submit"/>
</fieldset>
</form>
后端代码,
Github link:
var app = require('koa')(),
router = require('koa-router')(),
koaBody = require('koa-body')();
router.post('/users', koaBody,
function *(next) {
console.log(this.request.body);
// => POST body
this.body = JSON.stringify(this.request.body);
}
);
app.use(router.routes());
app.listen(3131);
console.log('curl -i http://localhost:3131/users -d "name=test"');
但结果是 --> this.request.body 是 {}。
我做错了什么?
您正在使用 multipart/form-data
作为表单数据编码,因此在您的服务器代码中,您应该将正确的选项传递给 koa-body
构造函数。
kaoBody = require('koa-body)({ multipart: true });
我使用 "form" 将数据发送到我的网络服务器。 前端:
<form action="http://localhost:3131/users" method="POST" enctype="multipart/form-data" target="_blank">
<fieldset>
<label for="name">Name:</label>
<input type="text" id="name" name="name"/>
</fieldset>
<fieldset>
<label for="age">Age:</label>
<input type="text" id="age" name="age"/>
</fieldset>
<fieldset>
<label for="wl">Wl:</label>
<input type="text" id="wl" name="wl"/>
</fieldset>
<fieldset>
<input type="submit" value="Submit"/>
</fieldset>
</form>
后端代码, Github link:
var app = require('koa')(),
router = require('koa-router')(),
koaBody = require('koa-body')();
router.post('/users', koaBody,
function *(next) {
console.log(this.request.body);
// => POST body
this.body = JSON.stringify(this.request.body);
}
);
app.use(router.routes());
app.listen(3131);
console.log('curl -i http://localhost:3131/users -d "name=test"');
但结果是 --> this.request.body 是 {}。
我做错了什么?
您正在使用 multipart/form-data
作为表单数据编码,因此在您的服务器代码中,您应该将正确的选项传递给 koa-body
构造函数。
kaoBody = require('koa-body)({ multipart: true });