Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバーサイドKotlin/JSのフレームワークを作った話

 サーバーサイドKotlin/JSのフレームワークを作った話

CISTLT-Zli 合同LT会2020 with Halloween にて発表
https://github.com/yt8492/indikate

Yuta Tomiyama

October 31, 2020
Tweet

More Decks by Yuta Tomiyama

Other Decks in Programming

Transcript

  1. ルーティングの実装 - pathとmethodを簡単に指定できて、ラムダ式でhandlerを書きたい - expressの app.get("/hoge", (req, res) => {})

    みたいに - path, method, handlerを持つ構造体(data class)のリストを内部で保持するように して、get("/hoge") {} などのメソッドを呼び出すとその内部のリストに構造体がadd されるようにする - http.createServerのラムダ式の引数のrequestからpathとmethodを取得し、 一致するhandlerがあればそれに処理をさせる
  2. リクエストを扱いやすくする - http.createServerのラムダ式の引数のrequestには各種パラメータなどが扱いや すい状態で入っていない - pathやquery parameterはurlからパースして取得する必要がある - bodyはrequest.on("data")のコールバックからとる必要がある -

    headerは扱えるがKotlinのIterableではないのでforEachなどの便利メソッドが使えない - 自作のRequest構造体(data class)を作成し、各種パラメータなどを扱いやすくフ レームワーク側で加工する