【Node.js】Cloud Datastoreを使い倒そう!

はじめましてこんにちは、ひょうどうです。

今回は、GCP(Google Cloud Platform)のサービスの一つ、Cloud DatastoreをNode.jsで使用する方法をメモします。

Cloud Datastoreについて

Datastoreとは、NoSQL型で可用性が非常に高いデータベースです。

Datastoreの詳細については公式ドキュメントを参照ください!

使い方

kind変数:テーブル名

更新

const datastoreUpdate = async (id, kind, data) => {
  let key = ''
  if (id) {
    key = datastore.key([kind, parseInt(id, 10)])
  } else {
    key = datastore.key(kind)
  }

  await datastore.save({
    key,
    data
  })
}

追加

const datastoreInsert = async (kind, data) => {
  await this.datastoreUpdate(null, kind, data)
}

先程の更新処理を再利用します。

取得(条件あり)

const datastoreGetWhere = async (kind, columnName, data) => {
  let query = ''
  if (columnName) {
    query = datastore.createQuery(kind).filter(columnName, '=', data)
  } else {
    query = datastore.createQuery(kind)
  }

  const [entities] = await datastore.runQuery(query)
  return entities
}

取得(条件なし)

const datastoreGet = async kind => {
  const entities = await this.datastoreGetWhere(kind, null, null)
  return entities
}

取得(1つだけ)

const datastoreGetFindBy = async (kind, columnName, data) => {
  let query = ''
  if (columnName) {
    query = datastore.createQuery(kind).filter(columnName, '=', data)
  } else {
    query = datastore.createQuery(kind)
  }

  const [entities] = await datastore.runQuery(query)
  return entities[0]
}

ユニークに設定したcolumnのみに使用します。

Twitterでフォローしよう

おすすめの記事