2
4

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 5 years have passed since last update.

Node.jsでマイクロサービス [Micro]

Last updated at Posted at 2017-12-03

対象読者

Node.jsを知っている
JavaScriptを知っている
Npmを知っている
新しいものが好き
が当てはまる人

Micro

Micro — Asynchronous HTTP microservices

その名の通り小さく軽量なモジュールを作るために存在しており、その容量は0.37mbほど。
Async Await を使って作ることを前提に Micro は設計されているので Async Await を知らない方は、そちらから始めることをお勧めします。

インストール

本番環境用: micro
開発環境用: micro-dev
のように使い分けができることがmicroの特徴で、devは

  • 自動ポート選択
  • クリップボードへのコピー
  • きれいなログメッセージ
  • ホットリロード

などの便利な機能がついてきます。

今回は dev をインストールします

npm install --save-dev micro-dev

package.json に micro-dev 用のscriptを追加

package.json
"scripts": {
  "dev": "micro-dev"
}

一行でサーバを立てる

まず index.jsファイル を作成してください。その中に

index.js
module.exports = () => 'Welcome to Micro'

と一行書くだけです。

先ほど設定した dev スクリプトを叩く。

npm run dev

Welcome to Micro が表示されるはずです。
戻り値を処理するのでこのような書き方ができちゃいます。簡単ですね。
Microはデフォルトでポート3000番ですが、すでに使用されている場合、空いているポートを自動選択してくれます。
なんとその時 http://localhost:58903 の形でクリップボードにコピーもしてくれます。
痒いところにも手が届いていいですね。

request と response を扱う

request と response を処理したい場合は次のようにします。

index.js
module.exports = (req, res) => {
  res.end('Welcome to Micro')
}

こちらも簡単。

Async Await を扱う

index.js
const sleep = require('then-sleep')

module.exports = async (req, res) => {
  await sleep(500)
  return 'Ready!'
}

Node.js で Async Await が提供されていないバージョンを使用している場合、async-to-gen を使ってトランスパイルすることを公式は推奨しています。

request を parse する

micro は request を json や buffer , text に parse する api を提供しています。

index.js
const {buffer, text, json} = require('micro')

module.exports = async (req, res) => {
  const buf = await buffer(req)
  const txt = await text(req)
  const js = await json(req)
  console.log(buf)
  console.log(txt)
  console.log(js)
  return ''
}

適当なリクエストを送ってみてください。
写真のような形で綺麗にログが出ます。
image.png

あとがき

適当に機能をチョイスして紹介しましたが、詳細はこちらをどうぞ。
testやエラーハンドリングのことも載ってます。サンプルもあります。
公式ページ
Github

2
4
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
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?