皆さん WebAPI で JSON を返したいですよね?Node.js 環境ではjson-serverとかもあるけれど、ベーシックに Express でやってみたい。
ちなみに最速はレスポンスではなくて作業量的な意味。
Express でハロワ
とりあえずハロワ
yarn で express をインストールする。
yarn init -y |
そしたらエントリポイントとなるファイルを作成する。とりあえずapp.js
としとく。
const express = require('express') |
うーん、4 行!かんたん
最後のconsole.log
は無くてもいいが、アドレスを入れておくと起動後に即開けるので楽ちん
$ node app |
実行してアクセスすると。。。
$ curl http://localhost:3000 |
ハロワでた!
JSON で返す
次にレスポンスが json で返るようにしよう。
やり方はresponse
オブジェクト(下記ではres
)にContent-Type
を設定すれば良い。
app.get('/', (req, res) => { |
これも実行すると。。。
$ node app |
json キタ!
URI にパラメータをつける
パラメータありのリクエストにも対応しよう
http://localhost:3000/<name>
として name に入れた名前でhello <name>!
と返るようにしてみる。
以下のコードを追加する。
app.get('/:name', (req, res) => { |
get の URI 指定に:<パラメータ>
と記述することでパラメータと認識され、req.params.<パラメータ>
で取り出すことができる。
また、res.send
にはオブジェクトをそのままぶち込める。これでもレスポンスは JSON にパースしてくれるので便利だ。
これを実行すると。。。
$ node app |
イケるね!
参考
実行環境
- Node 8.11.3
- Express 4.16.4