JavaScript からの実行

JavaScript SDK より Server Code を実行する例を以下に挙げます。

// Instantiate the endpoint.
var entry = Kii.serverCodeEntry("main");

// Set parameters.
var arg = {"username":"name_of_my_friend", "password":"password_for_my_friend"};

// Execute the server code.
entry.execute(arg,{

    success: function(entry, argument, execResult) {

      // Parse the result.
      var returned = execResult.getReturnedValue();
      var newUser = returned["returnedValue"];

      // Get the number of the executed steps.
      var steps = execResult.getExecutedSteps();

      // Get the version of Node.js on which the server code was executed.
      var environmentVersion = execResult.getEnvironmentVersion();
    },

    failure: function(entry, argument,execResult, anErrorString) {
      // Handle the error.
    }
  }
);

ここでは以下の処理が行われています。

  • 実行対象エンドポイント名(関数名)を指定して serverCodeEntry() メソッドを実行し、KiiServerCodeEntry インスタンスを作成。environmentVersion 引数を指定して、Server Code の実行に使用する JavaScript エンジンを指定することもできます。
  • 実行時パラメータ(今回の例ではユーザー名とパスワード)を JSON オブジェクトに準備します。この際、実行時パラメータのキーを Server Code 内のキーと一致させてください(今回の例では "username" と "password")。
  • 実行時パラメータを指定して execute() メソッドを実行し、Server Code を実行。
    • ユーザーがログインしている場合、Kii Cloud はこのユーザーにより Server Code が実行されたものと見なします。
    • ユーザーがログインしていない場合、Kii Cloud は匿名ユーザーにより Server Code が実行されたものと見なします。
  • getReturnedValue() メソッドを実行して、実行結果を取得。
  • (必要に応じて)getExecutedSteps() メソッドを実行して、実行ステップ数を取得。
  • (必要に応じて)getEnvironmentVersion() メソッドを実行して、Node.js のバージョンを取得。

getReturnedValue() メソッドは、戻り値の型 で例示したような、Server Code を実行した結果が "returnedValue" フィールドに格納された JSON オブジェクトを返します。実際の結果を抽出するには、適切なメソッドを実行してください。

タイムアウト時に返却する値を設定した場合、同様に getReturnedValue() メソッドを使って値を取得します。メソッドで取得可能な JSON オブジェクトは タイムアウト をご参照ください。

Server Code を手動実行して別の Server Code を呼び出すことはできません。実行すると、HTTP ステータス 409 で "OPERATION_NOT_ALLOWED" エラーになります。