Deno 是一个新兴的 JavaScript 运行时环境,它的设计目标是提供一种安全、可靠、高效的方式来运行 JavaScript 和 TypeScript 代码。与 Node.js 不同,Deno 内置了 TypeScript 支持,同时也没有 NPM 和 CommonJS 等旧有的设计,而是采用了 ES 模块系统。
在 Deno 项目中使用 PostgreSQL 数据库,可以通过 Deno 的第三方模块 deno-postgres
实现。本文将介绍如何在 Deno 项目中使用 PostgreSQL 数据库,并提供示例代码。
安装 deno-postgres
使用 deno-postgres
,需要先安装相应的依赖。可以通过以下命令进行安装:
deno install --allow-net --allow-env --allow-read -f --unstable https://deno.land/x/postgres/mod.ts
其中,--allow-net
、--allow-env
和 --allow-read
分别表示允许在 Deno 中进行网络请求、读取环境变量和读取文件系统。
连接 PostgreSQL 数据库
在使用 deno-postgres
连接 PostgreSQL 数据库之前,需要先创建一个数据库。可以使用以下命令创建一个名为 testdb
的数据库:
createdb testdb
接下来,可以使用以下代码连接到数据库:
-- -------------------- ---- ------- ------ - ------ - ---- -------------------------------------- ----- ------ - --- -------- ----- ----------- --------- --------- --------- ------------ ----- ----- --- ----- ----------------- ---------------------- -- -----------
在上述代码中,Client
类是 deno-postgres
提供的一个类,用于连接 PostgreSQL 数据库。user
、database
、hostname
和 port
参数分别表示数据库的用户名、数据库名、主机名和端口号。await client.connect()
表示连接到数据库,并打印一条连接成功的消息。
执行 SQL 查询
连接到数据库后,可以使用 client.query()
方法执行 SQL 查询。以下是一个简单的查询示例:
const result = await client.query("SELECT * FROM users"); console.log(result.rows);
在上述代码中,client.query()
方法接受一个 SQL 查询语句作为参数,并返回一个 Promise
对象。result.rows
表示查询结果的行数据。
插入数据
在插入数据之前,需要先创建一个表。以下是一个示例:
await client.query(` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, age INTEGER NOT NULL ) `); console.log("Created table: users");
在上述代码中,await client.query()
方法接受一个 SQL 命令作为参数,用于创建一个名为 users
的表。SERIAL
表示自增长整数,PRIMARY KEY
表示主键,NOT NULL
表示不能为空。
接下来,可以使用以下代码向表中插入一条数据:
const result = await client.query( "INSERT INTO users(name, age) VALUES($1, $2) RETURNING *", "Alice", 20, ); console.log(result.rows[0]);
在上述代码中,$1
和 $2
分别表示第一个和第二个参数,用于避免 SQL 注入攻击。RETURNING *
表示返回插入的数据。
更新数据
以下是一个更新数据的示例:
const result = await client.query( "UPDATE users SET age = $1 WHERE name = $2 RETURNING *", 30, "Alice", ); console.log(result.rows[0]);
在上述代码中,UPDATE
命令用于更新 users
表中 name
为 Alice
的数据的 age
字段。
删除数据
以下是一个删除数据的示例:
const result = await client.query( "DELETE FROM users WHERE name = $1 RETURNING *", "Alice", ); console.log(result.rows[0]);
在上述代码中,DELETE
命令用于删除 users
表中 name
为 Alice
的数据。
断开连接
在完成数据库操作后,需要使用以下代码断开与数据库的连接:
await client.end(); console.log("Disconnected from database");
总结
本文介绍了如何在 Deno 项目中使用 PostgreSQL 数据库,并提供了示例代码。deno-postgres
是一个功能强大的第三方模块,支持多种 PostgreSQL 版本,并提供了丰富的 API,可以满足不同场景下的使用需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65fd3ad1d10417a22288fdcd