Fork me on GitHub

役立ちぬ開発史、それはただのブログ

覚えておくといい、ブログの時代は終わる。いつかその内、きっとたぶん…

Parseにデータを保存する方法

| Comments

JavaScriptでのParseの使い方について、細かい内容を記録していこうと思います。ParseのJavaScript SDKは、Backbone.jsをベースに作られているそうです。

データの保存

Parse.Object.extendは、新しくサブクラスを作成する構文です。サブクラスを作成したらインスタンスオブジェクトを作成します。コードを見やすくすように、Exampleとexampleのように書くことをドキュメントでは推奨しています。

1
2
var Example = Parse.Object.extend("Example");
var example = new Example();

またParse.Objectは、Backbone.Modelと同じように書くことができます。

1
2
3
var Example = Parse.Object.extend({
  className: "Example"
});

これにより、Exampleのクラスを指定したデータの操作を行うことができます。

今回使わなかったのですが、Parse.Objectのサブクラスにメソッドを加えられるそうです。以下になります。コードは、ドキュメントのサンプルコードです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// A complex subclass of Parse.Object
var Monster = Parse.Object.extend("Monster", {
    // Instance methods
    hasSuperHumanStrength: function() {
    return this.get("strength") > 18;
  }
}, {
    // Class methods
    spawn: function(strength) {
    var monster = new Monster();
    monster.set("strength", strength);
    return monster;
  }
});
var monster = Monster.spawn(200);
alert(monster.strength());  // Displays 200.

次にsetで、挿入するデータに応じたカラムの属性を定義し、保存します。一度定義したら、変更することができません。ageで数字を入れたら、ずっと数字を入れなくてはいけません。もし属性を変えたい場合は、Parseの管理画面のData BrowserからDrop columnで、カラムを消してから入れ直す必要があります。

1
2
3
example.set("age", 21);
example.set("testName", "Test Name");
example.set("sex", false);

データの保存は、saveで行います。成功するとsuccessが呼ばれ、失敗するとerrorが呼ばれます。Parseには、エラーした時のエラーコードとその説明があります。このコードではalertで、successでは作成に成功したobjectidを、errorではエラーコードと説明を表示します。objectidは、createdAtとupdatedAtと一緒に保存した時に勝手に生成してくれます。

1
2
3
4
5
6
7
8
example.save(null, {
  success: function(example) {
    alert('New object created with objectId: ' + example.id);
  },
  error: function(example, error) {
    alert('Failed to create new object, with error code: ' + error.description);
  }
});

以上のことをまとめたコードになります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var Example = Parse.Object.extend("Example");
var example = new Example();

example.set("age", 21);
example.set("testName", "Test Name");
example.set("sex", false);

example.save(null, {
  success: function(example) {
    alert('New object created with objectId: ' + example.id);
  },
  error: function(example, error) {
    alert('Failed to create new object, with error code: ' + error.description);
  }
});

ちゃんと保存されているかは、Parseの管理画面のData Browserで確認できます。 また、setを使わずにsaveの中で直接設定をすることもできます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var Example = Parse.Object.extend("Example");
var example = new Example();

example.save(
  age: 21,
  testName: "Test Name",
  sex: false
}, {
  success: function(example) {
    alert('New object created with objectId: ' + example.id);
  },
  error: function(example, error) {
    alert('Failed to create new object, with error code: ' + error.description);
  }
});

おわりに

データの保存方法は、Backbone.Modelの書き方と似ています。なので、Backbone.jsを触ったことはないのですが、きっと触ったことある人には書きやすかったのではないかと思います。Backbone.jsのドキュメントを見てみましたが、かなり似ていると思います。

参考先:

Parse.Object(公式docs)
Saving Objects(公式docs)
【Parse】データ構造と保存サンプルコード

Comments