跳至主要内容

连接到 Neon Postgres

本教程介绍如何从部署在 Deno Deploy 上的应用程序连接到 Neon Postgres 数据库。

您可以在 此处找到一个更全面的教程,该教程在 Postgres 之上构建了一个示例应用程序。

设置 Postgres

本教程将完全专注于连接到未加密的 Postgres。如果您想使用自定义 CA 证书进行加密,请使用 此处的文档。

首先,我们需要创建一个新的 Postgres 实例供我们连接。在本教程中,我们将使用 Neon Postgres,因为它们提供免费的托管 Postgres 实例。如果您想将数据库托管在其他地方,也可以这样做。

  1. 访问 https://neon.tech/ 并点击注册,使用电子邮件、Github、Google 或合作伙伴帐户注册。注册后,您将被引导到 Neon 控制台以创建您的第一个项目。

  2. 输入您的项目名称,选择一个 Postgres 版本,提供一个数据库名称,并选择一个区域。通常,您需要选择最靠近您的应用程序的区域。完成后,点击创建项目

  3. 您将看到新项目的连接字符串,您可以使用它连接到您的数据库。保存连接字符串,它看起来像这样

    postgres://alex:[email protected]/dbname?sslmode=require

    您将在下一步中需要连接字符串。

在 Deno Deploy 中创建一个项目

接下来,让我们在 Deno Deploy 中创建一个项目,并使用必要的环境变量进行设置。

  1. 访问 https://dash.deno.com/new(如果您还没有,请使用 GitHub 登录)并点击Deploy your own code下的Create an empty project
  2. 现在点击项目页面上的Settings按钮。
  3. 导航到Environment Variables部分,并添加以下密钥。
  • DATABASE_URL - 该值应设置为您在上一步中保存的连接字符串。

postgres_env_variable

编写连接到 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 上不同部署方式和不同配置选项的更多详细信息,请阅读此处