最近話題になっているDenoはご存じでしょうか。JavaScriptの実行環境としてNode.jsは知っていると思いますが、その開発者がNode.jsでの課題を解決すべく、一から作り直したのがDenoになります。ちなみに名前は "node".split('').sort().join('')
で表されます。
DenoはTypeScriptをベースにしていたり、ルートでasync/awaitをサポートしている、package.jsonを使わずに外部ライブラリをインポートできるなどの仕組みがあります。そんなdeno向けのNCMB SDKを非公式ながら開発開始しました。
使い方
まず、denoをインストールします。
オブジェクトを保存するコードは次のようになります。test.tsとして保存してください。GitHub上にあるファイルを直接指定しているのが分かるでしょうか。
import NCMB from 'https://raw.githubusercontent.com/goofmint/ncmb_deno/master/ncmb.ts'
まずNCMBを初期化します。
const applicationKey = 'aaa' const clientKey = 'bbb' const ncmb = new NCMB(applicationKey, clientKey)
オブジェクトは次のようにして作成します。JavaScript SDKよりも、SwiftやJavaなどのSDKに寄せています。
const hello = ncmb.Object('HelloDeno')
後は値を設定して保存します。ルートでasync/awaitが使えますので、非同期処理も簡単に書けます。
await hello .set('message', 'Hello world') .set('number', 100) .save()
getで値を取得できます。
// 保存できていればオブジェクトIDが出力されます console.log(hello.get('objectId'))
コード全体は次のようになります。シンプルなのが分かるかと思います。
import NCMB from 'https://raw.githubusercontent.com/goofmint/ncmb_deno/master/ncmb.ts' const applicationKey = 'aaa' const clientKey = 'bbb' const ncmb = new NCMB(applicationKey, clientKey) const hello = ncmb.Object('HelloDeno') await hello .set('message', 'Hello world') .set('number', 100) .save() console.log(hello.get('objectId'))
実行
--allow-net
はネットワークアクセスする際に必須です。
deno run --allow-net test.ts
初回実行時にライブラリをダウンロードします。
コードについて
コードはNCMBMania/ncmb_deno: deno用のSDKですにて公開しています。ライセンスはMIT Licenseになります。実装時の参考にしてください。
まとめ
まだ開発をはじめたばかりなので、バージョンはありません。将来的にはバージョンを付けて公開しますので、少々お待ちください。