這是在講關於一名叫 Koa 的全端勇士傳說-koa-bodyparser

前言

接下來就是針對表單解析的部分,這邊會透過一個套件來做表單解析,也就是 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() 上出來

ctx.request

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

0%