在现代 Web 开发中,后端框架的选择多种多样,其中 Hapi 框架是一种非常流行的 Node.js 框架。它具有可扩展性、插件化、易于测试、强大的路由系统等特点。而为了操作数据库,我们需要使用 ORM(对象关系映射)框架,TypeORM 是一款很好的选择。那么在 Hapi 中如何使用 TypeORM 呢?本文将给出详细的指导。
环境准备
在开始之前,我们需要安装 Hapi 和 TypeORM。你可以通过 npm 进行安装:
--- ------- ---- ------- ----------------
其中,reflect-metadata 是必须的,这是因为 TypeORM 使用了装饰器语法,需要利用该库来支持装饰器的特性。另外,我们还需要配置 TypeORM。
在项目根目录下创建一个 ormconfig.json 文件,写入以下内容:
- ------- -------- ------- ------------ ------- ----- ----------- ----------- ----------- ----------- ----------- ----------- -------------- ----- ---------- ------ ----------- ---------------------- ------------- ------------------------ -------------- ------------------------- ------ - -------------- --------------- ---------------- ----------------- ----------------- ----------------- - -
这里我们使用了 mysql 数据库,你也可以替换为其他数据库。entities、migrations、subscribers 指定了这些目录下的文件将被 TypeORM 用作表映射、迁移脚本和事件监听器。
创建实体类
在 Hapi 中,我们需要将路由和 ORM 结合在一起使用。因此,在开始编写路由之前,我们需要先定义实体类。这其实是 TypeORM 中非常重要的一部分,因为它负责将应用程序中的对象映射到数据库中的关系属性。
假设我们需要在应用程序中表示一个用户对象,那么我们可以创建一个 User 实体类。在项目的 src/entities 目录下,创建一个 user.ts 文件,写入以下代码:
------ - ------- ------- ---------------------- - ---- ---------- --------- ------ ----- ---- - ------------------------- --- ------- --------- ---------- ------- --------- --------- ------- -
在上面的代码中,我们使用 @Entity 装饰器指定该类为实体类,@PrimaryGeneratedColumn 装饰器表示 id 字段为主键,并且自动递增,@Column 装饰器表示该字段为数据库中的一列。
编写路由
在定义完实体类之后,我们需要编写路由来对数据库进行操作。在 Hapi 中,路由由插件实现。因此,我们需要编写自己的插件来使得我们可以在路由中使用 TypeORM。
这里,我们需要使用 hapi-plugin-typeorm 插件。在项目中执行以下命令安装它:
--- ------- -------------------
然后,在你的 src/index.ts 文件中,注册插件并建立 TypeORM 连接:
------ - ------- -------- --------------- - ---- ------- ------ - ----------------- ------------ - ---- ---------- ------ - -- ----------------- ---- ---------------------- ------ - ---- - ---- ------------------ ----- ---- - ----- -- -- - ----- ------- ------ - --- -------- ----- ----- ----- ----------- --- ----- ------------------------ -- -- ------- -- ----------- ------- ----- ------------------- -- -- ------- -- ----- ----------------- ------- ----------------- --- -------------- - ------- ------ ----- --------- -------- ----- --------- -------- -- ---------------- -- - ----- -------------- - ---------------------------- ----- ----- - ----- ---------------------- ------ - ----- -- - -- -- --- --- ----- --------------- -- -------
在上面的代码中,我们使用请求的 getRepository 方法来获取 UserRepository 对象,然后调用其 find 方法进行查询。
总结
通过本文,我们了解了如何在 Hapi 框架中使用 TypeORM 来操作数据库。虽然这里只介绍了最基本的使用方式,但是 TypeORM 还有很多其他的功能,例如事务、数据填充等,读者可以通过查阅官方文档来深入学习。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64f5ca90f6b2d6eab3e992ca