概要
前回、Hasuraの連携先としてNeonを選択した。
今回は、GraphQLではなくNeonのDBを直接たたいてみる。
ロールの準備
Neonにアクセスするためのユーザとパスワードを作成する。
Manage database access
New Roleをクリックして、ロールを新規作成。
.envをダウンロードすると、下記のようにパスワードが入っている。
PGUSER=kartagraph_from_lambda
PGPASSWORD=hoge
接続の準備
@neondatabase/serverlessが接続に必要。
サンプルコードをダッシュボードから確認できる。
下記のサンプルコードを取得できる。
import { neon } from '@neondatabase/serverless';
const sql = neon('postgresql://kartagraph_from_lambda@fuga.us-west-2.aws.neon.tech/main?sslmode=require');
const posts = await sql('SELECT * FROM posts');
// See https://neon.tech/docs/serverless/serverless-driver
// for more information
接続文字列の編集
接続文字列にパスワードが足りていないので追加する。 postgresql://user:passwordの書式。
test.js
import { neon } from '@neondatabase/serverless';
const sql = neon('postgresql://kartagraph_from_lambda:hoge@fuga.us-west-2.aws.neon.tech/main?sslmode=require');
const posts = await sql('SELECT * FROM posts');
console.log('posts', posts);
npm init -y
npm i @neondatabase/serverless
node test.js
postsテーブルをお試しで作って実行したところ、動作することを確認できた。
posts [
{ id: 'hoge', contest: 'ブログ1' },
{ id: 'hoge2', contest: 'ブログ2' },
]