nestjs下typeOrm的entities参数问题

92 阅读1分钟

有个天坑般的问题想不通

nestjs下配置数据库typeOrmModule,定义数据库表entities时,正常是一个个数据表文件引入,见5-7行,然后在传入数组(27-31行)

import { Module } from '@nestjs/common';
import {  ConfigModule, ConfigService } from '@nestjs/config'
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm';

// import { Users } from '../userinfo/entities/users.entity';
// import { Profile } from '../userinfo/entities/profile.entity';
// import { Logs } from '../userinfo/entities/logs.entity';

const path = require('path')

   let allEntities2 = [path.resolve(__dirname,'../userinfo/entities/*.entity.js')]
   console.log("🚀 ~ file: ormconfig.module.ts:42 ~ allEntities2:", allEntities2)

@Module({
    imports: [
        TypeOrmModule.forRootAsync({  
            imports: [ConfigModule],
            inject: [ConfigService],
            useFactory: (configService: ConfigService) =>({
              type: 'mysql',
              host: configService.get('DBHOST'),
              port: 3306,
              username: 'root',
              password: configService.get('DBPWD'),
              database: 'xzz222',
              entities: allEntities2,
              // [  // 定义生成表格
              //   Users,
              //   Profile,
              //   Logs,
              // ],
              synchronize: true,  // 同步本地的schema与数据库
              logging: ['error'],  //日志记录类型  数据库操作记录
              
            } as TypeOrmModuleOptions ),
          }),
    ]
})
export class OrmConfig {}

因为我的数据表文件都定义在同一目录,所以我希望能自动读取并提取各文件的模块Class,(中途自定义解析提取模块大半天,无效)

然而用第11行的方法,读取文件绝对路径,他明明只是读取了entities文件夹下通配* 的js文件, allEntities2的打印结果是这样的,只是一个路径数组而已

image.png

可是在26行传入allEntities2竟然奇迹般的可以正常运行,并且成功读到3张表

??????????求大神解释