Обработчик исключений Не найдено метаданных для «Профиля» в nest.js

#nestjs

#nestjs

Вопрос:

Я создавал Nest.js проект и столкнулся с некоторыми проблемами, связанными с ним. Я предполагаю, что проблема заключается в файле profile.entity.ts, поскольку, если я удалю этот файл, все будет работать нормально. Итак, у меня есть несколько файлов app.module.ts file:

 import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { typeOrmConfig } from './config/typeorm.config';
import { ProfileModule } from './profile/profile.module';

@Module({
  imports: [TypeOrmModule.forRoot(typeOrmConfig), ProfileModule],
  controllers: [],
  providers: [],
})
export class AppModule {}
 

profile.entity.ts

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

@Entity()
export class Profile extends BaseEntity{
    @PrimaryGeneratedColumn()
    id: number;
    @Column()
    fullName: string;
    @Column()
    company: string;
    @Column()
    position: string;
    @Column()
    dateOfBirth: Date;
    @Column()
    phoneNumber: string;
    @Column()
    additionalPhoneNumber: string;
    @Column()
    email: string;
    @Column()
    additionalEmail: string;
    @Column()
    website: string;
    @Column()
    additionalWebsite: string;
    @Column()
    facebook: string;
    @Column()
    instagram: string;
    @Column()
    telegram: string;
    @Column()
    whatsapp: string;
    @Column()
    vk: string;
    @Column()
    tikTok: string;
    @Column()
    linkedIn: string;
    @Column()
    youTube: string;
    @Column()
    skype: string;
    @Column()
    modeDetails: string;

}
 

profile.module.ts

 import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ProfileController } from './profile.controller';
import { ProfileRepository } from './profile.repository';
import { ProfileService } from './profile.service';

@Module({
  imports:[TypeOrmModule.forFeature([ProfileRepository])],
  controllers: [ProfileController],
  providers: [ProfileService]
})
export class ProfileModule {}
 

profile.repository.ts

 import { Profile } from './profile.entity';
import { EntityRepository, Repository } from 'typeorm';

@EntityRepository(Profile)
export class ProfileRepository extends Repository<Profile> {}
 

typeorm.config.ts

 import { TypeOrmModuleOptions } from "@nestjs/typeorm";

export const typeOrmConfig:TypeOrmModuleOptions={
    type:'postgres',
    host:'localhost',
    port:5432,
    username:'postgres',
    password:'M',
    database: 'profileManagement',
    entities:[__dirname   '/../**/*.entity.ts'],
    synchronize:true
}
 

Пожалуйста, помогите, я не могу найти точное место, где я поступил неправильно

Комментарии:

1. typeOrmConfig Включает ли ваше entities свойство, и если возможно, вы можете поделиться им?

2. @JayMcDoniel, привет, привет), хорошо, я добавил

Ответ №1:

Измените entities значение с __dirname '/../**/*.entity.ts' на __dirname '/../**/*.entity.js' . Что происходит, так это то, что когда вы переносите код из ts в js, код перемещается из src в dist . На данный момент в , нет ts кода dist , поэтому глобус, который вы используете, ничего не находит. Если вы используете .js however, он найдет соответствующие файлы и сможет использовать метаданные, которые там установлены.