简介
Fastify 是一个快速、低开销、功能齐全的 Web 框架,由其灵活性,用户可对其进行高度定制。Typeorm 可以运行在浏览器、Node.js、Cordova、PhoneGap、React Native 等各种平台上,并且支持 TypeScript。这篇文章将带你了解如何使用 Fastify 和 Typeorm 连接 Node.js。
安装
首先,我们需要使用以下命令安装 Fastify 和 Typeorm:
npm install fastify typeorm reflect-metadata
连接数据库
在代码中,我们需要导入 Typeorm:
import { createConnection } from "typeorm";
然后,我们可以使用 Typeorm 的 createConnection
函数来连接数据库:
createConnection({ type: "mysql", host: "localhost", port: 3306, username: "root", password: "root", database: "my_db", entities: [__dirname + "/entities/*.js"], synchronize: true, }) .then(() => { console.log("Database connection established."); }) .catch((error) => { console.log("Database connection failed."); console.log(error); });
以上代码会尝试连接一个 MySQL 数据库,配置项中的 entities
属性则用来指定需要创建的实体类。
创建实体类
在 Typeorm 中,我们使用实体类来表示数据库中的表。在这个例子中,我们将创建一个用户表:
import { Entity, Column, PrimaryGeneratedColumn } from "typeorm"; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() email: string; @Column({ default: true }) isActive: boolean; }
以上代码中,我们使用 @Entity
装饰器来定义实体类,使用 @PrimaryGeneratedColumn
和 @Column
装饰器来定义列属性。
使用 Fastify 创建路由
接下来,我们将使用 Fastify 创建一个路由处理 HTTP 请求:
import * as fastify from "fastify"; import { UserController } from "./controllers/UserController"; const app = fastify({ logger: true }); app.register(UserController); app.listen(3000, (err, address) => { if (err) { console.error(err); process.exit(1); } console.log(`Server listening at ${address}`); });
在上述代码中,我们使用 fastify
模块来创建一个应用程序实例,并使用 UserController
注册路由处理器。
创建控制器
在 Node.js 中,我们使用控制器来解析路由,处理 HTTP 请求以及返回 HTTP 响应结果。以下是 UserController
的代码:
import { Controller, Get } from "fastify-decorators"; import { getRepository } from "typeorm"; import { User } from "../entities/User"; @Controller("/users") export class UserController { @Get("/") async getAll() { const userRepository = getRepository(User); const users = await userRepository.find(); return users; } }
控制器使用 @Controller
装饰器定义了路由路径。此处我们定义了一个路由 /users
,并在 @Get
装饰器中指定了 HTTP 方法为 GET。
在 getAll
方法中,我们使用 getRepository
函数从 Typeorm 中获取 User
实体类的仓库,并使用其 find
方法查找所有用户。
总结
这篇文章介绍了如何使用 Fastify 和 Typeorm 进行数据库连接、定义实体类和创建路由和控制器。我们希望读者在学习本文后可以顺利使用 Fastify 和 Typeorm 进行开发工作。
完整示例代码可以在以下链接获取:
https://github.com/Assistant-GitHub/Fastify-Typeorm-Mysql
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65af62dcadd4f0e0ff8d0744