结合 Fastify 和 TypeORM 构建 TypeScript 后端

背景

前端技术不断发展,越来越多的 Web 应用需要进行后端开发,而 TypeScript 也已经成为前端开发中的必备技能之一。因此,本文旨在介绍如何使用 Fastify 和 TypeORM 构建 TypeScript 后端的基本步骤及注意事项。

环境要求

在开始构建 TypeScript 后端之前,确保安装以下环境:

  • Node.js 12+
  • TypeScript 3.8+
  • Fastify
  • TypeORM
npm install fastify typeorm @types/node ts-node

创建 Fastify 应用

首先,我们需要使用 Fastify 创建出一个基本的 Web 应用。在创建应用之前,需要按照以下步骤导入 Fastify:

import fastify from 'fastify';

const app = fastify({ logger: true });

在这里,我们使用了 fastify 的默认配置来创建一个实例,并启用了日志记录功能。

下一步是创建一个路由,示例如下:

app.get('/', async (request, reply) => {
  return { hello: 'world' };
});

这里我们使用 app.get() 方法创建了一个路由,并设置对应的处理函数,该路由路径为 /,返回内容为 { hello: 'world' },可以根据需要进行修改。

最后,在创建应用完成后需要监听指定的端口,示例如下:

app.listen(3000, (err, address) => {
  if (err) {
    console.error(err);
    process.exit(1);
  }
  console.log(`Server listening on ${address}`);
});

这里我们使用 app.listen() 方法指定需要监听的端口,若监听失败则记录错误信息并退出程序,同时输出监听地址信息。

集成 TypeORM

接下来,我们需要添加 TypeORM 支持。TypeORM 是一个流行的 TypeScript ORM(对象关系映射),它可以帮助我们更轻松地操作数据库。

首先,需要为 TypeORM 创建数据库连接,并设置目标数据库属性,示例如下:

import { createConnection } from 'typeorm';

await createConnection({
  type: 'sqlite',
  database: './foo.sqlite',
  entities: [],
  synchronize: true,
  logging: true,
});

这里我们使用 createConnection() 方法创建出一个名为 foo.sqlite 的 SQLite 数据库连接,并通过 entities 字段设置了实体类,synchronize 字段指定了自动同步数据库结构的行为,logging 字段指定了是否输出日志。

接下来,需要创建实体类,示例如下:

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

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

  @Column()
  name!: string;

  @Column()
  email!: string;
}

这里我们定义了一个名为 User 的实体类,它包含 id、name 和 email 三个字段,并设置了对应的注解。

接下来,就可以使用 TypeORM 提供的 API 进行数据操作了。示例代码如下:

app.get('/users', async (request, reply) => {
  const userRepository = getConnection().getRepository(User);
  const users = await userRepository.find();

  return { users };
});

app.post('/users', async (request, reply) => {
  const userRepository = getConnection().getRepository(User);
  const user = userRepository.create(request.body);

  return userRepository.save(user);
});

这里我们使用了 getRepository() 方法获取了名为 User 的实体类对应的存储库,然后可以使用 API 进行查询或新增数据操作。

总结

本文介绍了如何使用 Fastify 和 TypeORM 构建 TypeScript 后端。首先,根据环境要求安装相关的依赖环境;然后,使用 Fastify 创建基本 Web 应用,集成 TypeORM 支持并定义实体类;最后,使用 TypeORM 提供的 API 进行数据操作。这里仅是简单的示例,读者可以根据需要进行更多的修改和优化工作,来创建适合自己场景的后端服务。

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


纠错反馈