📅  最后修改于: 2023-12-03 15:39:14.086000             🧑  作者: Mango
NestJS 是一个流行的 Node.js 框架,它提供了灵活的体系结构、强大的路由功能和良好的抽象层来帮助你构建复杂的 Web 应用程序。在本文中,我们将向您展示如何将 NestJS 连接到 MySQL 数据库。
在开始之前,您需要在系统上安装 Node.js 和 NestJS。您还需要安装 mysql2
(我们将在后续步骤中使用它来连接到 MySQL 数据库)。
npm install --save mysql2
在项目根目录下创建一个名为 .env
的文件,并将以下内容添加到其中:
DB_HOST=localhost
DB_USERNAME=root
DB_PASSWORD=password
DB_DATABASE=mydatabase
替换上面的值以匹配您的 MySQL 服务器配置。
在 NestJS 中,您可以使用 TypeORM 或 Sequelize 等 ORM 库来管理数据库。在本教程中,我们将使用 TypeORM。创建一个名为 ormconfig.json
的文件,并将以下内容添加到其中:
{
"type": "mysql",
"host": "${DB_HOST}",
"port": 3306,
"username": "${DB_USERNAME}",
"password": "${DB_PASSWORD}",
"database": "${DB_DATABASE}",
"entities": ["dist/**/*.entity{.ts,.js}"],
"synchronize": true
}
该配置文件将 NestJS 连接到 MySQL 数据库。请注意,我们使用了 .env
文件中定义的环境变量来引用不同的配置项。
在文件夹 src
中创建一个名为 users
的文件夹,并在其中创建一个名为 user.entity.ts
的文件。在该文件中添加以下代码:
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
email: string;
@Column()
password: string;
}
这个实体表示数据库中的 users
表。在本例中,我们只定义了 id
、name
、email
和 password
四个列。您可以根据需要添加或移除列。
在文件夹 src
中创建一个名为 users
的文件夹,并在其中创建一个名为 users.service.ts
的文件。在该文件中添加以下代码:
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
@Injectable()
export class UsersService {
constructor(
@InjectRepository(User)
private usersRepository: Repository<User>,
) {}
async findAll(): Promise<User[]> {
return await this.usersRepository.find();
}
}
该服务将查询 users
表并返回所有条目。在 URI 上访问此服务将返回 JSON 形式的结果。
在文件夹 src
中创建一个名为 users
的文件夹,并在其中创建一个名为 users.controller.ts
的文件。在该文件中添加以下代码:
import { Controller, Get } from '@nestjs/common';
import { UsersService } from './users.service';
@Controller('users')
export class UsersController {
constructor(private readonly usersService: UsersService) {}
@Get()
findAll(): Promise<any[]> {
return this.usersService.findAll();
}
}
该控制器将处理 /users
URI,使用上述服务返回所有 users
条目。
最后,您可以使用以下命令启动 NestJS 服务器:
npm run start
在本教程中,我们向您演示了如何连接 NestJS 到 MySQL 数据库。您已经学会了如何安装依赖项、配置环境变量、配置数据库连接、创建数据库实体、创建数据库服务和创建控制器。现在,您可以将这些步骤应用到自己的 NestJS 项目中,以访问和操作 MySQL 数据库。