本稿ではTypeScriptでKoaのリダイレクトをする方法を説明する。
Koaでのリダイレクトのしかた
ハンドラーに渡ってくるctx
オブジェクトにredirect()
メソッドが生えているので、それを叩くだけ。
ctx.redirect(url)
ctx.redirect
の使用例
import Koa from "koa";
import _ from "koa-route";
const app = new Koa()
app.use(_.get('/old', async ctx => {
ctx.redirect('/new')
}))
app.use(_.get('/new', async ctx => {
ctx.body = 'redirected!'
}))
app.listen(4000)
/old
へのHTTPリクエスト
GET /old HTTP/1.1
Host: localhost:4000
レスポンスは302になり、Location
ヘッダにリダイレクト先のURLがセットされているのがわかる。
HTTP/1.1 302 Found
Connection: keep-alive
Content-Length: 39
Content-Type: text/html; charset=utf-8
Date: Mon, 02 Sep 2019 06:01:51 GMT
Location: /new
Redirecting to <a href="/new">/new</a>.