機能的にはまだまだ少ないですが、Deno/TypeScript用のSDKを開発中です。TypeScriptで作られており、VueやReact、Angularとの組み合わせでも利用できます。
NCMBMania/ncmb_deno: deno用のSDKです
今回は位置情報への対応と、クエリオペランドを追加しましたので紹介します。
インストール方法
インストールは普段使っているnpmやYarnで可能です。
npm install ncmb_ts -S
初期化
初期化は次のように行います。
// Node.jsの場合 import { NCMB, NCMBUser } from 'ncmb_ts' // denoの場合 import { NCMB, NCMBUser } from 'https://raw.githubusercontent.com/NCMBMania/ncmb_deno/master/ncmb.ts' const ncmb = new NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY')
追加されたクエリオペランドについて
データストアの検索は次のように行います。JavaScript SDKに似せてあります。
(async () => { const query = new NCMBQuery('QueryTest'); const results1 = await query.equalTo('string', 'Hello').fetchAll() console.log('equalTo', results1.length, results1[0].get('objectId')) const query.reset() const results2 = await query.notEqualTo('string', 'Hello').fetchAll() console.log('notEqualTo', results2.length, results2[0].get('objectId')) })();
追加されたオペランドは次のようになっています。殆どのオペランドは追加してあります。このインタフェースもJavaScript SDKに似せています。
- equalTo(key: string, value:any): NCMBQuery
- setOperand(key: string, value:any, ope: string|null): NCMBQuery
- notEqualTo(key: string, value:any): NCMBQuery
- lessThan(key: string, value: number | Date): NCMBQuery
- lessThanOrEqualTo(key: string, value: number | Date): NCMBQuery
- greaterThan(key: string, value: number | Date): NCMBQuery
- greaterThanOrEqualTo(key: string, value: number | Date): NCMBQuery
- in(key: string, values: any): NCMBQuery
- notIn(key: string, values: any): NCMBQuery
- exists(key: string, exist: boolean | null): NCMBQuery
- regularExpressionTo(key: string, regex: string): NCMBQuery
- inArray(key: string, values: any): NCMBQuery
- notInArray(key: string, values: any): NCMBQuery
- allInArray(key: string, values: any): NCMBQuery
- near(key: string, location: NCMBGeoPoint): NCMBQuery
- withinKilometers(key: string, location: NCMBGeoPoint, maxDistance: number): NCMBQuery
- withinMiles(key: string, location: NCMBGeoPoint, maxDistance: number): NCMBQuery
- withinRadians(key: string, location: NCMBGeoPoint, maxDistance: number): NCMBQuery
- withinSquare(key: string, southWestVertex: NCMBGeoPoint, northEastVertex: NCMBGeoPoint): NCMBQuery
位置情報について
位置情報を扱う際には NCMBGeoPoint を利用してください。
// Node.jsの場合 import { NCMB, NCMBGeoPoint } from 'ncmb_ts' // denoの場合 import { NCMB, NCMBGeoPoint } from 'https://raw.githubusercontent.com/NCMBMania/ncmb_deno/master/ncmb.ts'
後はインスタンスを作ってデータストアやクエリで利用します。
const geo = new NCMBGeoPoint(35.0, 100.0); const hello = new NCMBObject('HelloDeno') await hello .set('message', 'Hello world') .set('number', 100) .set('geo', geo) .save()
ポインターも使えるようになっています。なお、ポインターとして指定されるデータはあらかじめ保存されている必要があります。
const geo = new NCMBGeoPoint(35.0, 100.0); const hello2 = new NCMBObject('HelloDeno') await hello2 .set('message', 'Hello world') .set('number', 100) .set('data', hello) .set('geo', geo) .save()
まとめ
クエリのオペランドが増えれば、より柔軟にデータ検索ができるようになります。データストアを使いこなす上で大事な機能になりますので、ぜひ知っておいてください。位置情報はアプリの機能で大事なものになりますので、こちらもぜひ活用してください。