Deno 是一个新兴的 JavaScript 和 TypeScript 运行时,它的创建者也是 Node.js 的创始人之一。与 Node.js 不同的是,Deno 提供了更好的类型安全和模块化支持,并且没有使用 npm 包管理器的需要。在本篇文章中,我们将讨论如何在 Deno 中使用 PostgreSQL 进行数据持久化。
安装 Deno 和 PostgreSQL
在开始使用 Deno 和 PostgreSQL 之前,你需要在你的机器上安装它们。你可以从 Deno 的官方网站(https://deno.land/)下载安装 Deno,然后从 PostgreSQL 的官方网站(https://www.postgresql.org/)下载安装 PostgreSQL。
连接到 PostgreSQL 数据库
在使用 PostgreSQL 之前,我们需要首先连接到它。我们将使用 deno-postgres 库来连接到 PostgreSQL 数据库。你可以使用 Deno 的内置模块管理器来安装它:
deno install --allow-net --allow-read --unstable https://deno.land/x/postgres/mod.ts
引入该库:
import { Client } from "https://deno.land/x/postgres/mod.ts";
在连接到 PostgreSQL 数据库之前,我们需要设置一些环境变量:
export PG_HOST=your_database_host export PG_PORT=your_database_port export PG_USER=your_database_username export PG_PASSWORD=your_database_password export PG_DB=your_database_name
然后,我们可以使用以下代码连接到 PostgreSQL 数据库:
-- -------------------- ---- ------- ----- ------ - --- -------- ----- ------------------------ --------- ---------------------------- --------- ------------------------ ----- ---------------------------------- --------- --------------------- --- ----- -----------------
执行 SQL 命令
我们现在已经连接到了 PostgreSQL 数据库,现在可以使用 Deno 来执行各种 SQL 命令了。例如,以下示例代码将创建一个名为 "users" 的表:
await client.query(` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, age INTEGER NOT NULL, email VARCHAR(100) UNIQUE NOT NULL ); `);
我们也可以使用 Deno 来查询数据库。以下示例代码将查询 "users" 表中的所有用户:
const result = await client.query("SELECT * FROM users;"); console.log(result.rows);
我们还可以使用参数化查询来避免 SQL 注入攻击。以下示例代码演示了如何使用参数化查询:
-- -------------------- ---- ------- ----- ---- - -------- ----- --- - --- ----- ----- - -------------------- ----- ------------- ------- ---- ----- ------ ---- ------ ------ ---- --- ------ ----- ---- ----- --
封装查询
由于大多数应用程序不仅仅只是做一个查询操作,因此封装查询成方法是很有用的。以下是一个基础示例:
async function getUsers(client: Client) { const result = await client.query("SELECT * FROM users;"); return result.rows; }
结论
在本篇文章中,我们了解了如何在 Deno 中使用 PostgreSQL 进行数据持久化。我们学习了如何连接到 PostgreSQL 数据库,如何执行 SQL 命令以及如何封装查询成方法。这是一个基础入门级别的指南,希望对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6752db148bd460d3ad993591