前言
接下來就是針對表單解析的部分,這邊會透過一個套件來做表單解析,也就是 koa-bodyparser
起手式
一樣也是先安裝套件
1
| npm install --save koa-bodyparser
|
使用方式如下
1 2
| const bodyParser = require('koa-bodyparser'); app.use(bodyParser());
|
與 Express 那邊稍微有點不太一樣,EJS 表單頁面如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <h1>Hello <%- title %></h1> <form action="/post" method="post"> <input type="email" name="email" id="email"> <input type="text" name="name" id="name"> <input type="submit" value="送出"> </form> </body> </html>
|
bodyParser
接下來必須新增一個 POST router 來接收表單資料,那寫法如下
1 2 3 4 5
| router.post('/post', async (ctx, next) => { const email = ctx.request.body.email; const name = ctx.request.body.name; console.log(email, name); })
|
這邊取得表單資料的方式是使用 ctx.request.body
的方式,所以若成功之後就會在 console.log()
上出來

如果 POST 成功後就轉址,轉址的方式是 ctx.redirect('/');
即可(跳轉太快就不附上圖片哩)