0
2

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.

サーバレスDBのNeon(postgresql)にNode.jsで接続してみたメモ

Last updated at Posted at 2023-12-09

概要

前回、Hasuraの連携先としてNeonを選択した。
今回は、GraphQLではなくNeonのDBを直接たたいてみる。

ロールの準備

Neonにアクセスするためのユーザとパスワードを作成する。
Manage database access
image.png

New Roleをクリックして、ロールを新規作成。

image.png

image.png

.envをダウンロードすると、下記のようにパスワードが入っている。

PGUSER=kartagraph_from_lambda
PGPASSWORD=hoge

接続の準備

@neondatabase/serverlessが接続に必要。
サンプルコードをダッシュボードから確認できる。

image.png

下記のサンプルコードを取得できる。

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' },
]

参考

sql-template-tags

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?