サーバサイドにロジックを持たせることでアプリだけでは難しかったロジックを実現したり、アプリのコードをシンプルにできます。現状、Node.jsしか対応していませんので、これまでJavaScript SDK以外を使ってきた方には馴染みがないかも知れません。
そこで今回はスクリプト機能を使うためのステップを紹介します。
Node.jsをインストールする
まずNode.jsをインストールする必要があります。Node.jsからダウンロードできます。最新版(執筆時点で5.8.0)をインストールしておくのが良いでしょう。
プロジェクトを作成する
まず最初にNodeプロジェクトを作成します。適当なディレクトリを作成して、その中でコマンドを入力します。
npm init
ソフトウェア名などが求められますが、基本的にデフォルトのままで良いかと思います。
ライブラリをインストールする
次にライブラリをインストールします。特に使わない場合は無視してもらっても構いません。今のところ、ニフティクラウド mobile backendとsuperagent(HTTPクライアント)が対応しています。ニフティクラウド mobile backendはsuperagentを使っていますので、それだけインストールすれば問題ありません。
npm install ncmb --save
--save
をつけることでこれから作成するスクリプト側でncmbライブラリが使えるようになります。詳細に言うと、フォルダの中に作成されている package.json が更新され、ライブラリ情報が追加されています。
スクリプトを書いてみる
では実際にスクリプトを書いてみます。例えばHello Worldを返すだけの機能を作る場合は次のようになります。
module.exports = function(req, res) { res.status(200).json({msg: "Hello World"}); };
必ず module.exports に関数が渡っている必要があります。その関数はリクエスト(req)とレスポンス(res)を引数に取ります。リクエストはクライアントアプリからのリクエスト情報が入り、URLのクエリであったり、フォームなどの入力データを受け取ります。レスポンスはサーバからデータを返す時に使います。HTTPステータスの200は正常終了という意味です。
さらにmBaaSを使う時には次のようになります。YOUR_APPLICATION_KEYとYOUR_CLIENT_KEYはそれぞれ読み替えてください。
var NCMB = require('ncmb'); module.exports = function(req, res) { var application_key = 'YOUR_APPLICATION_KEY'; var client_key = 'YOUR_CLIENT_KEY'; var ncmb = new NCMB(application_key, client_key); return res.status(200).json({msg: "Hello World"}); // res.status(503).json({error: "Error!"}); };
一番下のコメントアウトされているのはエラーの時のメッセージで、必ず error というキーに対してエラーメッセージをつけるようにしてください。
スクリプトをローカルで試す
作成したスクリプトをローカルでテストしたいと思うことは多いかと思います。その場合、次のようにするのがシンプルです。
module.exports = function(req, res) { // 何かの処理 }; module.exports();
このようにmodule.exportsを実行すれば、簡単に動作テストができるようになります。ただし、req/resというオブジェクトがありませんので、これらを使う場合には処理分けを行う必要があります。
if (res) { // resオブジェクトがある場合(本番環境) } else { // ない場合(テスト実行) }
後はnodeでスクリプトを実行するだけです。
node app.js
スクリプトをアップロードする
アップロード後の流れについてはスクリプト機能をリリースしました! | BACKEND AS A SERVICE mbaas BLOGを参照してください。
いかがでしょうか。Node.jsで開発するというと敷居が高くなったように感じますが、ステップを踏みつつローカルで実行しながら作っていけば決して難しくありません。ぜひスクリプト機能をお試しください!