连接到 Neon Postgres
本教程介绍如何从部署在 Deno Deploy 上的应用程序连接到 Neon Postgres 数据库。
您可以在 此处找到一个更全面的教程,该教程在 Postgres 之上构建了一个示例应用程序。
设置 Postgres
本教程将完全专注于连接到未加密的 Postgres。如果您想使用自定义 CA 证书进行加密,请使用 此处的文档。
首先,我们需要创建一个新的 Postgres 实例供我们连接。在本教程中,我们将使用 Neon Postgres,因为它们提供免费的托管 Postgres 实例。如果您想将数据库托管在其他地方,也可以这样做。
-
访问 https://neon.tech/ 并点击注册,使用电子邮件、Github、Google 或合作伙伴帐户注册。注册后,您将被引导到 Neon 控制台以创建您的第一个项目。
-
输入您的项目名称,选择一个 Postgres 版本,提供一个数据库名称,并选择一个区域。通常,您需要选择最靠近您的应用程序的区域。完成后,点击创建项目。
-
您将看到新项目的连接字符串,您可以使用它连接到您的数据库。保存连接字符串,它看起来像这样
postgres://alex:[email protected]/dbname?sslmode=require
您将在下一步中需要连接字符串。
在 Deno Deploy 中创建一个项目
接下来,让我们在 Deno Deploy 中创建一个项目,并使用必要的环境变量进行设置。
- 访问 https://dash.deno.com/new(如果您还没有,请使用 GitHub 登录)并点击Deploy your own code下的Create an empty project。
- 现在点击项目页面上的Settings按钮。
- 导航到Environment Variables部分,并添加以下密钥。
DATABASE_URL
- 该值应设置为您在上一步中保存的连接字符串。
编写连接到 Postgres 的代码
要读写 Postgres,请导入 Postgres 模块,从环境变量中读取连接字符串,并创建一个连接池。
import { Pool } from "https://deno.land/x/[email protected]/mod.ts";
// Get the connection string from the environment variable "DATABASE_URL"
const databaseUrl = Deno.env.get("DATABASE_URL")!;
// Create a database pool with three connections that are lazily established
const pool = new Pool(databaseUrl, 3, true);
// Connect to the database
const connection = await pool.connect();
try {
// Create the table
await connection.queryObject`
CREATE TABLE IF NOT EXISTS todos (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL
)
`;
} finally {
// Release the connection back into the pool
connection.release();
}
将应用程序部署到 Deno Deploy
完成应用程序编写后,您可以在 Deno Deploy 上部署它。
为此,请返回到您在 https://dash.deno.com/projects/<project-name>
上的项目页面。
您应该会看到几个部署选项。
除非您想添加构建步骤,否则我们建议您选择 GitHub 集成。
有关 Deno Deploy 上不同部署方式和不同配置选项的更多详细信息,请阅读此处。