在NestJS中,要向其他模块公开TypeORM存储库,可以通过以下步骤实现:
npm install typeorm @nestjs/typeorm
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
email: string;
// 其他属性...
}
TypeOrmModule.forRoot()
方法配置TypeORM连接和实体类。例如:import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'password',
database: 'mydatabase',
entities: [User],
synchronize: true,
}),
],
})
export class AppModule {}
TypeOrmModule.forFeature()
方法将实体类注册到当前模块中。例如,创建一个名为UserRepository
的提供者:import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
@Injectable()
export class UserRepository {
constructor(
@InjectRepository(User)
private userRepository: Repository<User>,
) {}
// 其他方法...
}
UserRepository
,可以在其他模块中使用TypeORM存储库。例如,在控制器中使用UserRepository
:import { Controller, Get } from '@nestjs/common';
import { UserRepository } from './user.repository';
@Controller('users')
export class UserController {
constructor(private userRepository: UserRepository) {}
@Get()
getUsers() {
return this.userRepository.find();
}
// 其他路由处理方法...
}
通过以上步骤,你可以在NestJS中向其他模块公开TypeORM存储库。这样,你可以在不同的模块中使用相同的存储库实例来进行数据库操作。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云