Closed6

Koa調査メモ

okunokentarookunokentaro

調査モチベーション

  • Expressは使い慣れているけど、そろそろ2021年においてコールバックベースのインタフェースがつらい
    • 思考停止でExpressを使い続けても時代に取り残されているのではないか?
  • KoaはExpress作者TJ Holowaychukが関わっているためExpressの後継と例えられることがある
    • Moment.jsに対するLuxonみたいな構図
  • 下記理由によりExpress利用者としては検討の価値がありそう
    • Expressからの移行先としてはもっとも親和性が高そう
      • Expressのnext()が同期関数なのが一番Expressの中でつらいところ
      • 副作用に依存した処理を書かざるを得ない
    • Promise, async/awaitベースなインタフェースを採用している
okunokentarookunokentaro

Routing

npm i -SE @koa/router
npm i -DE @types/koa-router
  • Expressのように標準でできるわけではない
    • @koa/router middlewareが必要
    • middlewareベースな思想のkoaとしてはこのデザインは納得

型定義がおかしい

https://twitter.com/okunokentaro/status/1414137180100853765

どうしたもんか。型定義ファイルのメンテを考えるとちょっと警戒するなこれは。


  • import pathの不安定さや型定義の更新のなさを調査してみると、koaのrouterには2系統あることがわかった
  • 業務用途なのでTypeScript型定義の更新2年遅れかつCHANGELOGゼロという状況はExpressの安定感からは程遠い
    • Expressで問題と感じている部分をkoaにして改善するのではなく、Expressの範囲内で工夫したほうが安定すると判断しkoaは不採用に決定
このスクラップは2021/08/21にクローズされました