FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

denoで使えるSDKを開発中です

f:id:mbaasdevrel:20200609182129j:plain

最近話題になっているDenoはご存じでしょうか。JavaScriptの実行環境としてNode.jsは知っていると思いますが、その開発者がNode.jsでの課題を解決すべく、一から作り直したのがDenoになります。ちなみに名前は "node".split('').sort().join('') で表されます。

DenoはTypeScriptをベースにしていたり、ルートでasync/awaitをサポートしている、package.jsonを使わずに外部ライブラリをインポートできるなどの仕組みがあります。そんなdeno向けのNCMB SDKを非公式ながら開発開始しました。

使い方

まず、denoをインストールします。

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になります。実装時の参考にしてください。

まとめ

まだ開発をはじめたばかりなので、バージョンはありません。将来的にはバージョンを付けて公開しますので、少々お待ちください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。