はじめに
ここにNode for Maxのサンプルプロジェクトがいくつか置いてあるので参考になりそう。
天気API叩いてみた
使うやつ
天気になんの恨みもないが、手頃なAPI、それはお前だ!!
OpenWeatherMap
確認できたこと
- npmを使ってパッケージを入れられる(axios)
- APIのキーを
.env
に秘匿できる - Maxから引数を受け取り、JSONなどのデータをMaxに返すことができる
-
async/await
を使って非同期処理を綺麗に書ける - ファイルを分割してlibを作っても、ちゃんと
require
で相対パスから読み込むことができる
スクショ
ソースコード
(おまけ)そもそもNode本体はどこにあるの
デバッグツールのスタッツを見ると、どうやらMaxアプリの中にnodeとnpmのバイナリが入っているらしい。
なので、実行環境を自分のPCに用意しなくてもOK。
/Applications/Max.app/Contents/Resources/C74/packages/Node For Max/source/lib/nsRunner.js
これがエントリポイントになっているようで、
Maxのスクリプトの中で
require('max-api');
なんの断りもなく(パッケージを解決することなく)こんな風にMaxAPIが呼べるのは、このnsRunner.js
の中で呼ばれている`nsProcessShell.js`あたりで実行前にラッピングされているからっぽいです。
むすび
楽しいですね!!