npmnode.js95% confidence\u2191 28

RepositoryNotFoundError: No repository for "User" was found. Looks like this entity is not registered in current "default" connection? Typeorm

Full error message
I am having a fun issue trying to get TypeOrm to work in my nestjs project.

I have the below code to configure my project, yes everything loads, and yes I am able to connect to my database.

import { CacheModule, Module } from '@nestjs/common';
import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './entities/user.entity';
import { ConfigModule } from '@nestjs/config';
import { AuthenticationController } from './controllers/authentication.controller';
import { AuthenticationService } from './services/authentication.service';
import { Connection } from 'typeorm';
import { BaseEntity } from './entities/base.entity';

@Module({
  imports: [
    ConfigModule.forRoot(),
    TypeOrmModule.forRoot({
        type: 'postgres',
        host: 'localhost',
        port: 5432,
        username: 'postgres',
        password: process.env.POSTGRE_PASSWORD,
        database: process.env.DATABASE,
        migrationsTableName: 'migration_table',
        entities: [User, BaseEntity],
        migrations: [__dirname + '/migrations/**/*.ts'],
        subscribers: [__dirname + '/subscribers/**/*.ts'],
        cli: {
          entitiesDir: '/entitys',
          migrationsDir: '/migrations',
          subscribersDir: '/subscribers',
        },
        synchronize: true,
        autoLoadEntities: true,
    }),
    CacheModule.register(),
    PassportModule,
    JwtModule.register({
      secret: 'myprivatekey',
      signOptions: { expiresIn: '1d' },
    }),
  ],
  controllers: [AuthenticationController],
  providers: [AuthenticationService],
})
export class AppModule {
  constructor(private connection: Connection) {}
}

and here are the entities:

import {
  Column,
  BeforeUpdate,
  BeforeInsert,
} from 'typeorm';

export class BaseEntity {
  @Column()
  created_at: Date;

  @Column({
    default: new Date(),
  })
  updated_at: Date;

  @BeforeUpdate()
  updateUpdatedAt() {
    this.updated_at = new Date();
  }

  @BeforeInsert()
  updateCreatedAt() {
    this.created_at = new Date();
  }
}

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

import { BaseEntity } from './base.entity';

@Entity('users')
export class User extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  @Generated('uuid')
  uuid: string;

  @Column()
  first_name: string;

  @Column()
  last_name: string;

  @Column()
  email: string;

  @Column()
  password: string;

  @Column({
    default: false,
  })
  confirmed: boolean;

  @Column({
    default: null,
  })
  seller_id: string;

  @Column({
    default: null,
  })
  auth_token: string;

  @Column({
    default: false,
  })
  is_admin: boolean;
}

I originally tried doing a glob pattern match, to no avail, so now I am directly importing in my Entities until I can get something to run. Also note, that all my modules load prior to the error above and the error is from using the @InjectRepository() decorator within either the AuthenticationController or AdminController. Everywhere I have looked has said its because my entities are not being loaded, which I am not sure how that is possible. Thanks.

In my case I had an error on Production mode, to fix it I added the path of the compiled JS files in the build folder. const conn: MongoConnectionOptions = { type: 'mongodb', url: DB_URL, synchronize: true, useNewUrlParser: true, useUnifiedTopology: true, logging: true, entities: ['src/entity/*.ts', './build/src/entity/*.js'], // <- Here! migrations: ['src/migration/**/*.ts'], subscribers: ['src/subscriber/**/*.ts'], cli: { entitiesDir: 'src/entity', migrationsDir: 'src/migration', subscribersDir: 'src/subscriber', }, extra: { authSource: DB_AUTH_SOURCE, }, }; The short version could be: entities: ['**/src/entity/*{.ts,.js}'],

API access

Get this solution programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/error/9c8b17f09e6f64348658b08e417a06aec4f7f8fef5fa631944e7a9ee90fee669
hash \u00b7 9c8b17f09e6f64348658b08e417a06aec4f7f8fef5fa631944e7a9ee90fee669
RepositoryNotFoundError: No repository for &quot;User&quot;… — DepScope fix | DepScope