【Mac】nodebrewを使ったNode.jsの環境構築

単純に公式サイト https://nodejs.org からpkgをダウンロードしてインストールが最も簡単な方法ではあるが、pythonやrubyにバージョン管理ツールが用意されているように、Node.jsにもバージョン管理ツールがあるのでそれを使うことにする。

過去にNode.jsを使っていたことがあるので、一旦環境をリセットして再度バージョン管理ツールでインストールという流れで進める。

現状のNode.jsを完全にアンインストール

MacにpkgでインストールしたNode.jsをアンインストールする手順

を参考にインストーラでインストールしたNode.jsをアンインストール。
これでpkgでインストールしたNode.jsは削除できたようだ。

しかし

が未だに実行できてしまう。
そこで、そもそもnodeがどこにあるのかを確認。

どうも昔の僕はnvmで管理していたようだ。最近はnodebrewがお勧めらしいのでnvmをアンインストールする。

まず、bash_profileの編集。

を削除。

次に.nvmフォルダを削除。

最後にbash_profileの反映

確認

完全にNode.jsをアンインストールすることができた。

nodebrewを使ってNode.jsをインストール

次にnodebrewを使ってインストールしていく。
まずhomebrewをインストール。

その後、homebrewを使ってnodebrewをインストール。

確認。

ずらずらと出力されるので完了。
次にNode.jsをインストールする。
その前に、予めディレクトリを作成しておかないとnodebrewをインストールしてもエラーになるので作成。

その後インストール。

確認。

current: noneとなっているので、

で、バージョンを指定する。

補足として、
特定のバージョンを使いたい場合は

でバージョン一覧を取得し

で好きなバージョンをインストールし、

でOK

その後、nodeコマンドへパスをbash_profileに保存

下記を追記

bash_profileの反映

確認。

これでNode.jsのインストールが完了。

念のためnpmも使えることを確認。

OK。

NodeJSでCron処理を実現し、デーモン化させる。

NodeJSで作ったプログラムをCronのように動かしたい。

どうやらnode-cronというモジュールがあるらしい。

Node.jsで特定の処理を指定日時、あるいは特定のパターンの日時に繰り返し実行する方法: node-cronを使う

上記サイトを参考に、関連モジュールをnpmでインストール。

サンプルコード内のjob.stop();をコメントアウトさせ、いつものように $ node crontest.js と実行させると、1秒毎にHelloが表示される。

Ctr + C で終了。

次に、過去に作ったNodeJSプログラムをCronで動かしたい。
サンプルコードをみるとonTickの中にで過去のプログラムを動かせばよさそうだ。

下記のサイトを参考に外部ファイル化させ、上記メソッド内で実行させるとOK。

node.jsで外部ファイルのJavaScriptを呼び出す

※NodeJSに限らず、Cronのような処理を行うときは、プログラム内のファイルへのパスを絶対パスで記述しないと動かないので注意。

次にCronをデーモン化させる。

foreverモジュールを利用。グローバルインストールさせないとなぜかコマンドが認識されないので下記のようにインストール。

下記のコマンドでデーモン化。

稼働中のデーモン一覧を見る時は

どうやらログファイルも自動生成されるようで、プログラム内のエラーやconsole.logがそのログに記録されていく。

停止させるときは

以上。

NodeJSでMAMPのMySQLにアクセスする。

mysqlモジュールをnpmでインストール後、下記のようなコードでMySQLにアクセスできるといろんなサイトに掲載されているが、MacのMAMPだと失敗する。

下記のようにMAMP内のMySQLサーバーのポートである8889を指定するとアクセスすることができる(念のためMySQLのポートはMAMPの設定から確認してほしい)。

以上。