在现代化的 Web 应用程序中,数据库是一个必不可少的组成部分。在 Node.js 中,有很多优秀的库可以操作各种类型的数据库,其中 TypeORM 是一个值得推荐的库,它提供了一种更加简洁和优雅的方式来操作数据库。本文将介绍如何在 Koa2 中使用 TypeORM 操作 MySQL 数据库。
安装 TypeORM
在开始之前,我们需要安装 TypeORM。可以使用以下命令进行安装:
npm install typeorm --save
配置数据库连接
在使用 TypeORM 之前,我们需要先配置数据库连接。在这里,我们将使用 MySQL 数据库。在项目根目录下创建一个名为 ormconfig.json
的文件,用于存储数据库连接配置信息。以下是一个示例配置:
-- -------------------- ---- ------- - ------- -------- ------- ------------ ------- ----- ----------- ------- ----------- --------- ----------- ------- -------------- ----- ---------- ------ ----------- - ---------------------- -- ------------- - ------------------------ -- -------------- - ------------------------- -- ------ - -------------- --------------- ---------------- ----------------- ----------------- ----------------- - -
上述配置中,type
指定了数据库类型,host
和 port
分别指定了数据库服务器的地址和端口号,username
和 password
分别指定了数据库服务器的用户名和密码,database
指定了要连接的数据库名称。synchronize
用于自动同步实体定义和数据库结构,logging
用于控制 TypeORM 是否输出日志。entities
、migrations
和 subscribers
分别指定了实体、迁移和订阅器的目录。cli
用于指定生成实体、迁移和订阅器的目录。
定义实体
在使用 TypeORM 操作数据库时,我们需要先定义实体。实体是与数据库表对应的 JavaScript 类。在这里,我们创建一个名为 User
的实体,用于操作 users
表。以下是一个示例实体:
-- -------------------- ---- ------- ------ - ------- ----------------------- ------ - ---- ---------- --------- ------ ----- ---- - ------------------------- --- ------- --------- ----- ------- --------- ------ ------- -
在上述代码中,@Entity()
装饰器用于指定实体对应的表名。@PrimaryGeneratedColumn()
装饰器用于指定实体的主键字段,它会自动生成一个自增的整数值。@Column()
装饰器用于指定实体的普通字段。
创建连接
在配置好数据库连接和定义好实体之后,我们需要在代码中创建一个连接。以下是一个示例代码:
-- -------------------- ---- ------- ------ - ---------------- - ---- ---------- ----------------------------- ------------ -- - --------------------- ------------ -- ---------- ---------------- -- - --------------------- ---------- --------- ------- ---
在上述代码中,createConnection()
函数用于创建一个数据库连接。它返回一个 Promise 对象,可以使用 then()
方法和 catch()
方法来处理连接成功和连接失败的情况。
操作数据库
在创建好连接之后,我们就可以使用 TypeORM 操作数据库了。以下是一些常见的操作:
插入数据
-- -------------------- ---- ------- ------ - ------------- - ---- ---------- ------ - ---- - ---- ------------------ ----- -------------- - -------------------- ----- ---- - --- ------- --------- - ----- ---------- - ----------------------- ----- --------------------------
在上述代码中,我们首先使用 getRepository()
函数获取到一个实体的仓库对象。然后,我们创建一个新的实体对象,设置其属性值,最后使用 save()
方法将实体对象保存到数据库中。
查询数据
import { getRepository } from 'typeorm'; import { User } from './entities/User'; const userRepository = getRepository(User); const users = await userRepository.find(); console.log(users);
在上述代码中,我们使用 find()
方法查询 users
表中的所有数据,并将结果打印到控制台上。
更新数据
-- -------------------- ---- ------- ------ - ------------- - ---- ---------- ------ - ---- - ---- ------------------ ----- -------------- - -------------------- ----- ---- - ----- -------------------------- --------- - ----- ----- --------------------------
在上述代码中,我们首先使用 findOne()
方法查询 users
表中的一条数据,并将其修改为新的值,最后使用 save()
方法将修改后的实体对象保存到数据库中。
删除数据
import { getRepository } from 'typeorm'; import { User } from './entities/User'; const userRepository = getRepository(User); await userRepository.delete(1);
在上述代码中,我们使用 delete()
方法删除 users
表中的一条数据。
总结
本文介绍了如何在 Koa2 中使用 TypeORM 操作 MySQL 数据库。我们首先配置了数据库连接信息,然后定义了一个实体,最后展示了一些常见的数据库操作。希望本文对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651117a495b1f8cacd97619c