Node.jsで暗号資産アービトラージ

ビットコイントレード中心にNode.jsで実際に作るためのレシピ

Express.jsの起動はnodemonが便利

Express.jsのバックグランド実行はforeverが便利という記事を書きました。

Express.js(Node.js)をバックグラウンド実行させるにはforeverが便利 - Node.jsで暗号資産アービトラージ

コーディング中はnodemonというライブラリが便利なので紹介します。

コードの変更が発生すると自動的に再起動してくれるので修正を楽に確認できるようになります。

nodemonの例
写真の緑字のログrestarting due to changes...で自動で再起動がかかっています。

nodemonの使い方

Express.jsの通常の起動方法の問題点

Express4.x系では以下のように起動します。

node bin/www

ブラウザにlocalhost:3000と入力すると開発中の画面が表示されます。

コードを修正して画面の表示を確認したい場合、Ctrl+Cと再度node bin/wwwを実行してアプリケーションを再起動させる必要があります。

nodemonを使うと自動でコード修正を検知して再起動してくれるので、手動のオペレーションを短縮することができます。

nodemonのインストール

通常のnode.jsライブラリ同様にnpmを利用してインストールします。

npm install nodemon -g

通常起動時のnodeをnodemonと入力することで起動できます。

nodemon bin/www

nodemonのパラメータでは-execが便利

デフォルト設定では拡張子がjs、mjs、coffee、litcoffee、jsonのファイルが検知対象になっています。

viewにejs、jadeを利用している人は検知されるように追加しておきましょう。

起動コマンドにオプション(-execまたは-e)で指定します。

jsとejsを利用している場合は以下のように起動します。

nodemon -e js,ejs bin/www

nodemon利用時の便利な設定

起動コマンドはpackage.jsonに

毎回-eオプションで拡張子を入力するのは面倒ですよね。

package.jsonに記載しておくと便利です。

scriptsのtestのvalue部分に上記のコマンドを記載しておくことでnpm testコマンドでExpress.jsonをnodemon -eで起動することができます。

{
  "name": "shark",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "NODE_ENV=production forever start ./bin/www",
    "test": "nodemon -e ejs,js,json start ./bin/www"
  },
  "dependencies": {
    "ejs": "~2.5.7",
    "express": "^4.16.4"
  }
}

本番用途でのバックグラウンド起動はforeverで

上記の例ではscriptsのstartに本番用の起動コマンドを記載しています。

本番用サーバではnodemonではなくバックグラウンド起動できるforeverがおすすめです。

scriptsのstartを本番用途、testを開発用途にすることでnpm start、npm testの使い分けで起動コマンドを切り替えられるので便利です。

www.kennejs.com