ニフクラmBaaSお役立ちブログ

スマホアプリ開発にニフクラmBaaS。アプリ開発に役立つ情報をおとどけ!

任意のスクリプトをローカルで実行するコマンドを作りました

スクリプト機能は使っているでしょうか。アプリから使うのが基本なのですが、場合によってはローカルのコンピュータ上から実行したい時もありそうです。バッチ処理であったり、現在のデータストアの件数などを集計して返してくれるといった機能があっても良いでしょう。

そんな目的に使えるコマンドを作ってみました。ぜひお試しください。なお、こちらはまだ試作段階、かつ公式ツールではありませんのでその点ご了承ください。

インストールはnpmで

インストールはnpmを使っていますので、Node.jsがインストールされていることとします。次のようにコマンドを打ちます。

$ npm install ncmb-cli -g

これでインストール完了です。 ncmb というコマンドが使えるようになっています。

アプリケーションキーとクライアントキーを設定する

コマンドは次のようになっています。

$ ncmb script --help

  Usage: ncmb script [options] [filename]

  Options:

    -h, --help                               output usage information
    -V, --version                            output the version number
    -a, --application_key [application_key]  Your application Key
    -c, --client_key [client_key]            Your client key
    -i, --init                               Init
    -m, --method [type]                      Detect http method. GET/POST/PUT/DELETE

-aでアプリケーションキー、-cでクライアントキーを指定します。ただし、毎回指定するのは面倒なので、-iを使って設定ファイルに保存ができます。

ncmb -a AAA -c CCC -i

これを実行すると、 ~/.ncmb.json というファイルにアプリケーションキーとクライアントキーが保存されます。今のところ1つの設定ファイルにのみ対応しています。

実行する

実際に実行する場合には、 -mでメソッドを、-sでスクリプトを指定します。あらかじめスクリプトは管理画面でアップロードしておいてください。-dで特定のデータを渡せるようになっています。

例えば次のようにメッセージを返すだけのスクリプトがあったとします。

module.exports = function(req, res) {
  res.status(200).json({
    time: Date.now(),
    mgs: "Hello World"
  })
};

これはGETメソッドで定義しているので、次のようにコマンドを実行します。

$ ncmb -m GET helloworld.js
{ body: '{"time":1460771998025,"mgs":"Hello World"}' }

このように返却されたJSONをそのまま出力します。この結果をパイプして他のコマンドに渡すこともできるでしょう。


まだ作り始めた段階で機能は多くありません。毎回アプリから叩かないとテストできないのは不便なので、このコマンドを使ってみてください。なお現状ではスクリプトが全員実行できる状態になっている必要があります。

スクリプト (iOS) : 基本的な使い方 | ニフティクラウド mobile backend