ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

Webフレームワーク調査 Koa編(未完) #201

Koa

昨日の続きです。

Webフレームワーク調査、本日はKoaです。

Koa - next generation web framework for node.js

KoaはExpressを作った人たちが作っているNode製Webフレームワークらしい。

公式にもExpressive middleware for node.js using ES2017 async functionsとあるように、ES2017の記法を積極的に取り入れたExpressの進化系のような感じ。

ExpressもKoaもMiddlewareの組み合わせで、アプリケーションを作っていくという感じな点には変わりないのですが、

app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
});

(公式より引用)

こんな感じで、async/awaitが使えたりするのが特徴らしい。(async/awaitに対する理解が不足しているのでその辺を学んで来なければ…)

そういうわけで、Nodeのバージョンは7.6+が推奨らしい。もしくはBabelるか。

もう一つ大きな特徴が↑のサンプルコードにも出てくるctx。これはcontext objectの略で、リクエストとレスポンスを一つにまとめたモノのようなイメージ。

ctx.requestはKoaのRequestオブジェクトで、これはNodeのhttpモジュールのIncomingMessageのメソッドが使える…?的なことが書いていたような。(本当に英語力が無さすぎて訳せなかった)

コード書きたかったがココでタイムアップ。

今日やったこと

一応バイトだったのでほかにもいろいろやった

React+Reduxなフロントエンドのコードに久々に触りました。

何もわからなくなっていて本当にショックだった。いろいろなことをつまみ食いするのは本当に良くない。

雑談

明日は忙しいのでコード書けない気がするので、↑でよくわからんかったasync/await含めES6の文法再確認とかしたいと思います。

あと英語力なんとかしないと本当に死ぬ未来しか見えない。