使用 Fastify 和 TypeORM 操作数据库

在前端开发中,操作数据库是必不可少的一部分。Fastify 和 TypeORM 是两个非常优秀的库,可以帮助我们更加高效地操作数据库。

什么是 Fastify

Fastify 是一个快速、低开销和可扩展的 Node.js Web 框架,它的速度比 Express 更快。它是一个专注于提高性能的框架,为开发者提供了一个高效的、自定义的框架。

什么是 TypeORM

TypeORM 是一个非常强大的 ORM 框架,它支持 TypeScript 和 JavaScript。它能够与多种数据库进行交互,包括 MySQL、PostgreSQL、SQLite、MariaDB 等等。TypeORM 提供了多种功能,包括数据迁移、查询构建器、关系映射等等。

下面我们将演示如何使用 Fastify 和 TypeORM 操作数据库。

安装 Fastify 和 TypeORM

首先,我们需要安装 Fastify 和 TypeORM:

npm install fastify typeorm reflect-metadata mysql

创建数据库

接下来,我们需要创建一个数据库。这里我们使用 MySQL 数据库作为示例。

CREATE DATABASE fastify_example;

创建实体

接着,我们需要创建一个实体。在 TypeORM 中,实体是一个与数据库表相对应的类。

import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  email: string;

  @Column()
  password: string;
}

创建控制器

我们需要创建一个控制器来处理 HTTP 请求。这里我们使用 Fastify 来创建一个 HTTP 服务器,并在控制器中使用 TypeORM 操作数据库。

import { FastifyInstance } from "fastify";
import { Connection, createConnection } from "typeorm";
import { User } from "./user.entity";

export default async function (fastify: FastifyInstance) {
  const connection: Connection = await createConnection({
    type: "mysql",
    host: "localhost",
    port: 3306,
    username: "root",
    password: "password",
    database: "fastify_example",
    entities: [User],
    synchronize: true,
  });

  fastify.get("/users", async () => {
    return await connection.getRepository(User).find();
  });

  fastify.post("/users", async (request) => {
    const userRepository = connection.getRepository(User);

    const user = new User();
    user.name = request.body.name;
    user.email = request.body.email;
    user.password = request.body.password;

    await userRepository.save(user);

    return user;
  });
}

启动服务器

最后,我们需要启动 HTTP 服务器。

import fastify from "fastify";
import userController from "./user.controller";

const app = fastify();

app.register(userController);

app.listen(3000, (err, address) => {
  if (err) {
    console.error(err);
    process.exit(1);
  }

  console.log(`Server listening on ${address}`);
});

现在,我们可以通过发送 HTTP 请求来操作数据库了。例如,我们可以使用 cURL 命令来获取所有用户:

curl http://localhost:3000/users

我们也可以使用 cURL 命令来创建一个新用户:

curl -X POST -H "Content-Type: application/json" -d '{"name": "Alice", "email": "alice@example.com", "password": "password"}' http://localhost:3000/users

总结

在本文中,我们学习了如何使用 Fastify 和 TypeORM 操作数据库。我们创建了一个实体和一个控制器,并且启动了一个 HTTP 服务器。使用这些技术,我们可以轻松地操作数据库,并且实现一个高效、可扩展的 Web 应用程序。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65c597aaadd4f0e0ff0219df