返回
Nest.js数据库基础知识:与MySQL连接、实体定义与使用
前端
2023-10-03 02:50:04
连接 MySQL 数据库
第一步,我们需要将Nest.js与MySQL数据库进行连接。在ormconfig.json
文件中,我们需要添加以下配置:
{
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "root",
"password": "password",
"database": "nest_database"
}
该配置用于定义数据库连接信息,包括数据库类型、主机、端口、用户名、密码以及数据库名称。完成配置后,我们就可以通过注入方式在任何地方使用数据库连接了。
定义实体
接下来,我们来定义一个名为User
的实体类。实体类是用来数据库中数据的,它定义了表的结构和字段。
import {Entity, Column, PrimaryGeneratedColumn} from '@nestjs/typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
email: string;
}
在上面的代码中,我们定义了一个User
类,它包含了三个属性:id
、name
和email
。@PrimaryGeneratedColumn()
装饰器指定了id
字段为主键,并且自动生成。@Column()
装饰器则指定了其他两个字段的类型。
在 Service 中使用实体
定义了实体后,我们就可以在Service中使用它来进行数据操作了。以下是一个简单的例子:
import {Injectable, Inject} from '@nestjs/common';
import {Repository} from 'typeorm';
import {User} from './user.entity';
@Injectable()
export class UserService {
constructor(@Inject('USER_REPOSITORY') private userRepository: Repository<User>) {}
findAll(): Promise<User[]> {
return this.userRepository.find();
}
findOne(id: number): Promise<User> {
return this.userRepository.findOne(id);
}
create(user: User): Promise<User> {
return this.userRepository.save(user);
}
update(user: User): Promise<User> {
return this.userRepository.save(user);
}
delete(id: number): Promise<void> {
return this.userRepository.delete(id);
}
}
在这个Service中,我们首先通过注入Repository
来获得User
实体的存储库。然后,我们定义了几个方法,用于对数据库进行增删改查操作。这些方法都返回Promise对象,以便我们可以在其他地方异步地使用它们。
结语
这仅仅是Nest.js数据库操作的一个入门级介绍。在后续的文章中,我们将深入探讨更高级的主题,如多对多关系、事务处理等等。敬请期待!