TypeScript::Nestgram + ConfigModule::vanilla版本和错误

lnlaulya  于 2023-08-07  发布在  TypeScript
关注(0)|答案(1)|浏览(119)

请帮助解决这个问题,我已经得到了香草nestgram框架,现在我试图添加ConfigModule的支持,但看到错误“TypeError:无法读取未定义的属性(阅读'map')”
当我在 app.module.tsimports: [ConfigModule.forRoot()]中添加这行代码时,问题就出现了
nest-gram.js(node_modules/nestgram/dist/nest-gram.js)中出现问题

static async getServices(Module) {
        const modules = Reflect.getMetadata('modules', Module) || [];
        const compiledModules = [];
        for (const module of modules) {
            let result;
            let err;
            try {
                result = await module();
            }
            catch (e) {
                // @ts-ignore
                result = module();
                err = e;
            }
            if (result) {
                try {
                    compiledModules.push(...result);
                }
                catch (e) {
                    throw new Error(err);
                }
            }
        }
        let services = Reflect.getMetadata('services', Module)

       * //=> MY FEAUTURE FOR DEBUGGING
    console.log(typeof(services))
        //MY FEAUTURE FOR DEBUGGING <=
*
    services = services.map((Service) => {
            return new Service(...compiledModules);
        });
        return services;
    }

字符串
当我添加imports:[ ConfigModule.ForRoot()]时,我的console.log(typeof(services))返回 *undefined object *,如果不是,则只返回 object
帮助PLS

  • main.ts*
import { NestGram } from 'nestgram';
import { AppModule } from './app.module';

async function bootstrap(): Promise<void> {
  let KEY=process.env.TELEGRAM_BOT_KEY
  console.log(KEY)
  console.log(typeof(KEY))
  const bot = new NestGram(KEY, AppModule);
  await bot.start();
}

bootstrap();

  • app.module.ts*
import { ConfigModule } from '@nestjs/config';
import { Module } from 'nestgram';
import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  controllers: [AppController],
  services: [AppService],
  imports: [ConfigModule.forRoot()]
})
export class AppModule {}

  • app.controller.ts*
import { OnCommand, Controller } from 'nestgram';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService?: AppService) {}

  @OnCommand('start')
  start(): string {
    return 'Hello, world!';
  }
}

  • app.service.ts*
import { Service } from 'nestgram';

@Service()
export class AppService {
}

kzipqqlq

kzipqqlq1#

我认为这与他们文档首页上的警告有关:
Nestgram不能使用Nest.js模块。但是你可以为Nestgram创建自己的模块:)
似乎你不能在这个包中使用@nestjs/config
从外观上看,nestgram受到了NestJS的启发,甚至可能在幕后使用Nest,但它不能与现有的NestJS包互操作。

相关问题