Node.jsでマイクロサービス [Micro]
対象読者
Node.jsを知っている
JavaScriptを知っている
Npmを知っている
新しいものが好き
が当てはまる人
Micro
Micro — Asynchronous HTTP microservices
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を追加
"scripts": {
"dev": "micro-dev"
}
一行でサーバを立てる
まず index.jsファイル を作成してください。その中に
module.exports = () => 'Welcome to Micro'
と一行書くだけです。
先ほど設定した dev スクリプトを叩く。
npm run dev
Welcome to Micro が表示されるはずです。
戻り値を処理するのでこのような書き方ができちゃいます。簡単ですね。
Microはデフォルトでポート3000番ですが、すでに使用されている場合、空いているポートを自動選択してくれます。
なんとその時 http://localhost:58903 の形でクリップボードにコピーもしてくれます。
痒いところにも手が届いていいですね。
request と response を扱う
request と response を処理したい場合は次のようにします。
module.exports = (req, res) => {
res.end('Welcome to Micro')
}
こちらも簡単。
Async Await を扱う
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 を提供しています。
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 ''
}
適当なリクエストを送ってみてください。
写真のような形で綺麗にログが出ます。
あとがき
適当に機能をチョイスして紹介しましたが、詳細はこちらをどうぞ。
testやエラーハンドリングのことも載ってます。サンプルもあります。
公式ページ
Github
Author And Source
この問題について(Node.jsでマイクロサービス [Micro]), 我々は、より多くの情報をここで見つけました https://qiita.com/chanuu/items/ffcc5a3289b8181f9032著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .