示例
更换您的 app.js 使用以下代码将内容归档。
var koa = require('koa');
var router = require('koa-router'); //实例化路由器
var bodyParser = require('koa-body');
var app = new koa();
var _router = router(); //实例化路由器
var Pug = require('koa-pug');
var pug = new Pug({
viewPath: './views',
basedir: './views',
app: app
});
app.use(bodyParser({
formidable:{uploadDir: './uploads'},
multipart: true,
urlencoded: true
}));
_router.get('/', async (ctx)=>{
await ctx.render('form');
});
_router.post('/', async (ctx)=>{
console.log(ctx.request.body);
console.log(ctx.req.body);
ctx.body = ctx.request.body; //ctx是存储解析后的请求的地方
});
app.use(_router.routes()); //使用路由器定义的路由
app.listen(3001);
我们在这里做的新工作是导入 body 解析器和 multer。我们使用主体解析器解析 json 和 x-www-form-urlencoded 头请求,而使用multer 解析多部分/表单数据。
让我们创建一个 html 表单来测试一下!创建名为的 form.pug 使用以下代码。
html
head
title Form Tester
body
form(action = "/", method = "POST")
div
label(for = "say") Say:
input(name = "say" value = "Hi")
br
div
label(for = "to") To:
input(name = "to" value = "Koa form")
br
button(type = "submit") 请代我问候
现在转到 http://localhost:3001/ 返回 form.pug 的内容页面。
然后你想怎么填就怎么填,然后提交。您将收到的响应为-
这个 ctx.request.body 对象包含已分析的请求正文。要使用该对象中的字段,只需将它们用作普通 JS 对象即可。
这只是发送请求的一种方式。还有很多其他的方法,但这些都与这里无关,因为我们的 Koa 应用程序将以相同的方式处理所有这些请求。要了解更多关于提出请求的不同方法的信息,请查看此页。