はじめに
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インポートの場合は記載しなくてもいいよ!
{
"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 のため、デフォルト値を記載しておきます。
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も是非フォローしてね🦕💨