5
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

koaでサーバ開発クイックスタート

Last updated at Posted at 2019-04-17

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 ライフを。

5
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?