Fastify 是一个快速、低开销、可扩展的 Node.js Web 框架,它的特点是性能极佳、易于学习和使用。而 TypeORM 则是一个功能强大的对象关系映射器(ORM),它支持多种数据库,并提供了丰富的 API,让你可以轻松地进行数据操作。
在本文中,我们将会介绍如何在 Fastify 中使用 TypeORM 进行数据操作,包括如何配置数据库连接、如何定义实体、如何进行查询等等。
安装和配置
首先,我们需要安装 Fastify 和 TypeORM:
npm install fastify typeorm
然后,我们需要在代码中配置数据库连接。这里我们以 MySQL 数据库为例:
// javascriptcn.com 代码示例 import { createConnection } from 'typeorm'; createConnection({ type: 'mysql', host: 'localhost', port: 3306, username: 'root', password: 'password', database: 'test', entities: [__dirname + '/entities/*.js'], synchronize: true, }).then(() => { console.log('Database connected'); });
在上面的代码中,我们使用 createConnection
方法创建了一个数据库连接。其中,type
表示数据库类型,host
和 port
分别表示数据库的主机名和端口号,username
和 password
分别表示数据库的用户名和密码,database
表示要连接的数据库名。entities
则表示实体所在的目录,我们需要将实体的文件路径写成一个数组。最后,synchronize
表示是否自动同步实体和数据库结构。
定义实体
接下来,我们需要定义实体。实体是指与数据库表相对应的类,它们的属性和方法用于描述表的结构和操作。例如,我们定义一个 User
实体:
// javascriptcn.com 代码示例 import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() age: number; }
在上面的代码中,我们使用 @Entity
装饰器标记这是一个实体类,@PrimaryGeneratedColumn
表示自动递增的主键,@Column
表示一个普通的列。我们可以在属性中添加其他装饰器来定义列的类型、长度、默认值等等。
进行查询
现在我们已经定义了实体,接下来就可以进行查询了。TypeORM 提供了丰富的查询 API,可以满足各种需求。
例如,我们查询所有用户的代码如下:
import { getRepository } from 'typeorm'; import { User } from './entities/user'; async function getUsers() { const userRepository = getRepository(User); const users = await userRepository.find(); console.log(users); }
在上面的代码中,我们使用 getRepository
方法获取 User
实体的仓库,然后使用 find
方法查询所有用户。查询结果是一个数组,包含所有用户的数据。
如果我们要查询年龄大于 18 岁的用户,可以这样写:
async function getAdultUsers() { const userRepository = getRepository(User); const users = await userRepository.find({ where: { age: MoreThan(18) } }); console.log(users); }
在上面的代码中,我们使用 find
方法的 where
参数来指定查询条件,MoreThan
是一个内置的查询条件,表示大于某个值。
除了查询,TypeORM 还提供了插入、更新、删除等操作。这些操作的 API 都非常简单,具体可以参考官方文档。
总结
在本文中,我们介绍了如何在 Fastify 中使用 TypeORM 进行数据操作。我们首先配置了数据库连接,然后定义了实体,最后进行了查询操作。这些操作都非常简单,而且 TypeORM 提供了丰富的 API,可以满足各种需求。如果你还没有尝试过 TypeORM,不妨在你的项目中使用它,它会让你的开发更加高效、简单和愉悦。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65667852d2f5e1655df7e635