Node.js での実行

Kii Cloud SDK for JavaScript は Node.js でも利用可能です。

まず、開発環境に Node.js をインストールしてください。実行環境でも Node.js が必要です。

サーバー機能拡張 で Kii Cloud SDK for JavaScript を利用する場合、このページの情報は該当しません。ブラウザー上に SDK をそのまま組み込んだ場合と同じスタイルで実装してください。

Node.js の利用形態

Node.js は様々な使い方ができますが、Kii Cloud では以下の 2 通りの利用形態を想定しています。実装方法そのものは、いずれの場合も同じです。

  • ブラウザー向けの JavaScript ファイルを生成する

    これは、Node.js をブラウザー向けのビルド環境として利用する方法です。

    Node.js には、ライブラリーを名前空間の衝突なしに利用する仕組みがあります。requireexports によって、様々なライブラリーやモジュールを混乱なく組み込むことができます。

    最終的に、作成したソースを webpackBrowserify を使ってビルドすれば、ブラウザー上で動作する JavaScript ファイルを生成できます。

  • JavaScript コードを実行する

    これは、Node.js を JavaScript コードの実行環境として利用する方法です。

    特に、IoT ソリューションの Thing 側を JavaScript で実装する場合、Thing 上に Node.js をインストールして JavaScript の実行エンジンとして Node.js を利用します。Thing での利用方法は、JavaScript SDK で Thing を実装 をご覧ください。

Node.js を使ってブラウザー用の JavaScript ファイルを生成する方法や、Node.js 上で JavaScript ファイルを実行する方法は Kii Cloud 外の技術であるため、Web 上の一般的な技術情報をご覧ください。

SDK パッケージのインストール

以下の手順に従いプロジェクトを設定します。

  1. Node.js 上でプロジェクトを準備します。

    事前に Node.js 上で開発プロジェクト用のディレクトリを作成し、npm init で package.json を生成しておきます。また、Web アプリの開発に使用するフレームワークなどを組み込み、"Hello World" 的なプログラムが動作する状態にしておきます。

    Kii Cloud SDK の組み込みを行う前に、この時点での動作を確認しておくことをおすすめします。

  2. プロジェクトにライブラリーを組み込みます。

    Kii Cloud SDK for JavaScript のライブラリーを追加します。

    $ npm install kii-cloud-sdk --save
    

    実行すると、npm コマンドによって package.json の "dependencies" に以下の 1 行が追加されます。

    "dependencies": {
      ...
      "kii-cloud-sdk": "^XX.XX.XX",
      ...
    }
    

    XX.XX.XX は最新版のバージョンが埋め込まれます。こちら の右上にある XX.XX.XX is the latest of ... からもバージョンを確認できます。

    ここでは、先頭にキャレット ^ を付けて "^XX.XX.XX" のように指定されているため、次回の npm install や npm update で SDK の更新が自動的に取り込まれます。予期しない更新を避けたい場合は、キャレットを削除してバージョンを固定することもできます。

インストール完了後、プロジェクトのディレクトリー内にある node_modules ディレクトリーに kii-cloud-sdk が、さらにその内部の階層に依存ライブラリーのディレクトリー xmlhttprequest が作成されます。

SDK モジュールの読み込みと初期化

アプリのスクリプトの冒頭に以下の内容を追加して kii-cloud-sdk モジュールの読み込みと初期化を行います。

var kii = require('kii-cloud-sdk').create();
kii.Kii.initializeWithSite("___APPID___", "___APPKEY___", kii.KiiSite.JP);

___APPID___ には開発者ポータルにて取得した AppID を、___APPKEY___ には任意の値を設定してください。

また、開発者ポータルで指定したサーバー設置場所に合わせ kii.KiiSite.USkii.KiiSite.JPkii.KiiSite.CN3kii.KiiSite.SG、または kii.KiiSite.EU のいずれかを設定してください。

webpack がビルドエラーになる場合

Kii Cloud SDK for JavaScript と require を組み込んだ後、webpack を使ってブラウザー用の JavaScript ファイルを作成しようとすると、エラーが発生する場合があります。

XMLHttpRequest.js で Cannot resolve module 'child_process'Cannot resolve module 'fs' エラーになる場合は、webpack.config.js に以下の externals からの 3 行を追加してください。

module.exports = [
  {
    ......
    externals:[{
      xmlhttprequest: '{XMLHttpRequest:XMLHttpRequest}'
    }],
    ......
  }
]

利用可能な機能

JavaScript SDK のほぼ全ての機能が利用可能ですが、以下の制限があります。

  • Node.js で JavaScript コードを実行する場合、Object body のアップロードおよびダウンロードは利用できません。ただし、Node.js でビルドした JavaScript ファイルをブラウザー上で実行する場合は利用できます。

  • Node.js ではモジュールごとに独立したスコープを持つため、クラス名や定数名の呼び方に注意が必要です。一例として上記のサンプルコードでは var kii = require('kii-cloud-sdk').create(); で SDK モジュールを読み込んでいるため、以後 SDK が提供するメソッドや定数を参照する際に kii. を先頭につけています(例:kii.Kii.initializeWithSitekii.KiiSite.JP