简介
TypeORM 是一个 TypeScript 编写的 ORM 框架,它支持多种数据库,例如 MySQL、PostgreSQL、SQLite 等。Deno 是一个安全的 JavaScript/TypeScript 运行时,它使用 V8 引擎,并具有内置的模块和安全性特性。在本文中,我们将介绍如何在 Deno 中使用 TypeORM 进行数据库操作。
安装
在使用 TypeORM 前,我们需要先安装它。可以使用以下命令进行安装:
npm install typeorm reflect-metadata
我们还需要安装数据库驱动程序。例如,如果我们要使用 MySQL,我们可以使用以下命令进行安装:
npm install mysql
配置
在使用 TypeORM 前,我们需要先进行配置。我们可以创建一个 ormconfig.json
文件,并在其中指定数据库连接信息。例如,以下是一个连接 MySQL 数据库的配置:
// javascriptcn.com 代码示例 { "type": "mysql", "host": "localhost", "port": 3306, "username": "root", "password": "password", "database": "test", "synchronize": true, "logging": false, "entities": [ "src/entities/*.ts" ], "migrations": [ "src/migrations/*.ts" ], "subscribers": [ "src/subscribers/*.ts" ] }
在上面的配置中,我们指定了 MySQL 数据库的地址、端口、用户名、密码和数据库名称。synchronize
选项表示 TypeORM 是否应该自动同步数据库结构。logging
选项表示是否启用日志记录。entities
、migrations
和 subscribers
选项分别指定实体、迁移和订阅器的路径。
实体
在 TypeORM 中,实体表示数据库中的表。我们可以创建一个 TypeScript 类来表示实体。例如,以下是一个表示用户的实体:
// javascriptcn.com 代码示例 import { Entity, Column, PrimaryGeneratedColumn } from "typeorm"; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() email: string; @Column() password: string; }
在上面的代码中,我们使用 @Entity()
装饰器将该类标记为实体。我们还使用 @PrimaryGeneratedColumn()
装饰器将 id
字段标记为主键,并使用 @Column()
装饰器将其他字段标记为列。
数据库操作
在配置好 TypeORM 和实体后,我们可以开始进行数据库操作了。以下是一些常见的数据库操作:
连接数据库
我们可以使用 createConnection()
函数来连接数据库。例如,以下是连接 MySQL 数据库的代码:
import { createConnection } from "typeorm"; createConnection().then(() => { console.log("Database connected"); }).catch((error) => { console.log("Database connection failed", error); });
插入数据
我们可以使用 getRepository()
函数获取实体的仓库,并使用 save()
函数插入数据。例如,以下是插入用户数据的代码:
// javascriptcn.com 代码示例 import { getRepository } from "typeorm"; import { User } from "./entities/User"; const user = new User(); user.name = "Alice"; user.email = "alice@example.com"; user.password = "password"; const userRepository = getRepository(User); userRepository.save(user).then(() => { console.log("User saved"); }).catch((error) => { console.log("User save failed", error); });
查询数据
我们可以使用 getRepository()
函数获取实体的仓库,并使用 find()
函数查询数据。例如,以下是查询所有用户数据的代码:
// javascriptcn.com 代码示例 import { getRepository } from "typeorm"; import { User } from "./entities/User"; const userRepository = getRepository(User); userRepository.find().then((users) => { console.log(users); }).catch((error) => { console.log("User find failed", error); });
更新数据
我们可以使用 getRepository()
函数获取实体的仓库,并使用 save()
函数更新数据。例如,以下是更新用户数据的代码:
// javascriptcn.com 代码示例 import { getRepository } from "typeorm"; import { User } from "./entities/User"; const userRepository = getRepository(User); userRepository.findOne(1).then((user) => { user.name = "Bob"; userRepository.save(user).then(() => { console.log("User updated"); }).catch((error) => { console.log("User update failed", error); }); }).catch((error) => { console.log("User find failed", error); });
删除数据
我们可以使用 getRepository()
函数获取实体的仓库,并使用 delete()
函数删除数据。例如,以下是删除用户数据的代码:
// javascriptcn.com 代码示例 import { getRepository } from "typeorm"; import { User } from "./entities/User"; const userRepository = getRepository(User); userRepository.delete(1).then(() => { console.log("User deleted"); }).catch((error) => { console.log("User delete failed", error); });
总结
在本文中,我们介绍了如何在 Deno 中使用 TypeORM 进行数据库操作。我们首先安装了 TypeORM 和数据库驱动程序,并配置了数据库连接信息。然后,我们创建了表示实体的 TypeScript 类,并介绍了常见的数据库操作,例如插入、查询、更新和删除数据。这些操作可以帮助我们轻松地进行数据库操作,并提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657af36fd2f5e1655d5739a7