LoginSignup
1
0

🦕Denoにおける環境変数の扱いについて~Supabaseと接続してみよう~🦕

Last updated at Posted at 2024-01-23

はじめに

Denoで環境変数を扱うとき、どう読み込ませればいいんだろ?と思っていた時代があったので、そんな時代のお話を記事として残しておこうと思いました🦕
もし間違えがありましたらお気軽にご指摘ください~!

この記事の対象者

  • Deno触りたてほやほやの人
  • Denoにおける環境変数の設定・読み込みを知りたい人
  • DenoとSupabaseを繋げたい人

お話しないこと

  • Supabaseでのプロジェクト作成方法

環境

  • deno 1.38.4
  • typescript 5.2.2
  • fresh 1.5.4

準備

使用する値を保存

保存しておいてほしいのはデータベースのパスワードとホスト名になります。
前述したように、ここではプロジェクトの作成方法は説明しないため、下記を参考にするといいでしょう。
https://qiita.com/pikimaru/items/5e51d36250c288b8b6dc

  • パスワード:プロジェクト作成時に使用したデータベースのパスワード
  • ホスト名 :プロジェクト作成完了後、サイドバーの Project Settings → Database → Connect to your database directlyに記載してあるホスト名

使用ライブラリの追加

postgresを扱うライブラリ
https://deno.land/x/postgres@v0.16.1

環境変数を扱うライブラリ
https://deno.land/std@0.212.0/dotenv/mod.ts

それぞれ追加したら、import_map.json に追記しておきます。
※ URLインポートの場合は記載しなくてもいいよ!

import_map.json
{
  "imports": {
    "postgress": "https://deno.land/x/postgres@v0.16.1/mod.ts",
    "dotenv/": "https://deno.land/std@0.212.0/dotenv/mod.ts",
  }
}

環境変数の設定

.envファイルを作成して、下記のように記載します。
※PostgreSQL のデフォルトポートは 5432 のため、デフォルト値を記載しておきます。

.env
DB_USER=postgres
POSTGRES_DB=postgres
DB_PORT=5432
DB_PASSWORD=${データベースのパスワード}
DB_HOST=${ホスト名}

環境変数の読み込み~Supabaseと接続

import { Client } from "postgress";
import "dotenv";
 
const client = new Client({
  user: Deno.env.get("DB_USER"),
  database: Deno.env.get("POSTGRES_DB"),
  hostname: Deno.env.get('DB_HOST'),
  password: Deno.env.get('DB_PASSWORD'),
  port: Deno.env.get('DB_PORT'),
});

await client.connect();

これで接続できました!
あとは

await client.queryObject<${interface}>(...

とかで必要なクエリ書いたりすればデータを参照したり更新したりが可能になります。

おわりに

いかがでしょうか?
かなり限定的な記事となりましたが、少しでも参考になれば幸いです🦕
良きDenoライフを🦕🦕💨

弊社開発課のXも是非フォローしてね🦕💨

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