Node.js の lightweight web framework の一つに koa というフレームワークがあります。
koa でサーバを開発するときの(私がよく使う)主要なライブラリと使い方を軽くまとめました。
目次
- koa
- @koa/router
- koa-static
- @koa/cors
- koa-bodyparser
koa
koa 本体です。執筆時点でバージョン 2.7.0
です。
Install
npm i koa
Usage
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'hello';
});
app.listen(3000); // port 3000 でリッスン開始
@koa/router
URL のパスによって処理を分岐させるミドルウェアです。
Install
npm i @koa/router
Usage
const Koa = require('koa');
const Router = require('@koa/router');
const router = new Router();
router.get('/a', async (ctx, next) => {
ctx.body = '/a だよ';
});
router.get('/b', async (ctx, next) => {
ctx.body = '/b だよ';
});
router.get('/b/:id', async (ctx, next) => {
ctx.body = `/b/${ctx.params.id} だよ`;
});
const app = new Koa();
app
.use(router.routes())
.use(router.allowedMethods());
app.listen(3000);
koa-static
静的ファイルをホストするミドルウェアです。
Install
npm i koa-static
Usage
const Koa = require('koa');
const serve = require('koa-static');
const app = new Koa();
app.use(serve('./public')); // 公開したいディレクトリを指定
app.listen(3000);
./public/nice.png
というファイルがあれば http://localhost:3000/nine.png
で取得できる。
@koa/cors
CORS (Cross-Origin Resource Sharing) のためのミドルウェアです。
Install
npm i @koa/cors@2
Usage
const Koa = require('koa');
const cors = require('@koa/cors');
const app = new Koa();
app.use(cors());
app.use(async ctx => {
ctx.body = 'hello';
});
app.listen(3000);
koa-bodyparser
HTTP リクエストの body をパースするミドルウェアです。
ざっくりいうと、 POST したときのデータを読むために使います。
Install
npm i koa-bodyparser
Usage
const Koa = require('koa');
const bodyParser = require('koa-bodyparser');
const app = new Koa();
app.use(bodyParser());
app.use(async ctx => {
const body = ctx.request.body; // パースされたものがここに入る
ctx.body = body;
});
app.listen(3000);
おわり
増えたら適宜加筆します。
よき koa ライフを。