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 には、ライブラリーを名前空間の衝突なしに利用する仕組みがあります。
requireやexportsによって、様々なライブラリーやモジュールを混乱なく組み込むことができます。最終的に、作成したソースを webpack や Browserify を使ってビルドすれば、ブラウザー上で動作する 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 パッケージのインストール
以下の手順に従いプロジェクトを設定します。
Node.js 上でプロジェクトを準備します。
事前に Node.js 上で開発プロジェクト用のディレクトリを作成し、
npm initで package.json を生成しておきます。また、Web アプリの開発に使用するフレームワークなどを組み込み、"Hello World" 的なプログラムが動作する状態にしておきます。Kii Cloud SDK の組み込みを行う前に、この時点での動作を確認しておくことをおすすめします。
プロジェクトにライブラリーを組み込みます。
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は最新版のバージョンが埋め込まれます。npm view kii-cloud-sdk versionsを実行してバージョンを確認することもできます。ここでは、先頭にキャレット
^を付けて "^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___ には任意の値を設定してください。
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.initializeWithSite、kii.KiiSite.JP)