Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What is going on with this article?
@Yuichi_Yogo

Max8が出たのでNode for Maxを試してみた

More than 1 year has passed since last update.

はじめに

ここにNode for Maxのサンプルプロジェクトがいくつか置いてあるので参考になりそう。

天気API叩いてみた

使うやつ

天気になんの恨みもないが、手頃なAPI、それはお前だ!!
OpenWeatherMap

確認できたこと

  • npmを使ってパッケージを入れられる(axios)
  • APIのキーを.envに秘匿できる
  • Maxから引数を受け取り、JSONなどのデータをMaxに返すことができる
  • async/awaitを使って非同期処理を綺麗に書ける
  • ファイルを分割してlibを作っても、ちゃんとrequireで相対パスから読み込むことができる

スクショ

Sep-26-2018 08-29-22.gif
Maxパッチの中からAPI叩けた!

ソースコード

github

(おまけ)そもそもNode本体はどこにあるの

デバッグツールのスタッツを見ると、どうやらMaxアプリの中にnodeとnpmのバイナリが入っているらしい。

Screenshot 2018-09-26 04.43.53.png

なので、実行環境を自分のPCに用意しなくてもOK。

で、実行中のプロセスを調べたらこんな感じで、
ps.png

/Applications/Max.app/Contents/Resources/C74/packages/Node For Max/source/lib/nsRunner.js
これがエントリポイントになっているようで、
Maxのスクリプトの中で

require('max-api');

なんの断りもなく(パッケージを解決することなく)こんな風にMaxAPIが呼べるのは、このnsRunner.jsの中で呼ばれている`nsProcessShell.js`あたりで実行前にラッピングされているからっぽいです。

むすび

楽しいですね!!

10
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Yuichi_Yogo
音楽家・エンジニア。 Twitter: https://twitter.com/yogo_yuichi LAPRAS: https://lapras.com/public/6SUXPYX

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
10
Help us understand the problem. What is going on with this article?