1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Cloud Spannerにnode.jsでアクセスしてみる

Posted at

基本的にはこちらの記事通りにいろいろやればいい。

前提

こちらの記事の続き。

  • Emulator環境
  • テーブル作成済み
  • データInsert済み

準備

作業場の作成

まあどこでもいいのですが、以下のようにしました。

cd
mkdir spanner-node-test
cd spanner-node-test

touch index.js

モジュールのインストール

spannerにアクセスするためには@google-cloud/spannerをインストールするようです。

npm install @google-cloud/spanner

実装

コードを書く

いろいろな書き方ができるみたいですが、一旦SQLを使った方法を試してみます。

index.js
const { Spanner } = require("@google-cloud/spanner");

(async () => {

    //定数設定(環境依存)
    const projectId = "dev-test";
    const instanceId = "test-instance";
    const databaseId = "testdb";

    const spanner = new Spanner({
        projectId: projectId,
    });

    const instance = spanner.instance(instanceId);
    const database = instance.database(databaseId);

    const query = {
        sql: 'select * from members',
    }

    try {
        const [rows] = await database.run(query);
        rows.forEach(async row => {
            const json = await row.toJSON();
            console.log(`id:${json.id} name:${json.name} age:${json.age}`);
        });

    } catch (err) {
        console.error("ERROR", err);
    } finally {
        database.close();
    }

})();

実行

実行してみます。動いたようです。

node index.js

id:1 name:hoge age:10

メモ

以下のようにcredential系のエラーがでた場合は、

ERROR Error: Could not load the default credentials.

下記のように環境変数を設定すればOK。

export SPANNER_EMULATOR_HOST=localhost:9010
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?