nest中构建imagekit.io服务
1
| npm install imagekit-nestjs
|
1
| npm install @nestjs/config
|
创建configs/imagekit.config.ts
1 2 3 4 5 6 7 8 9 10
| import { ConfigService } from "@nestjs/config"; import { ImageKitModuleOptions } from "imagekit-nestjs";
export const ImageKitConfig = ( configService: ConfigService ): ImageKitModuleOptions => ({ privateKey: configService.get("IMAGEKIT_PRIVATE_KEY"), publicKey: configService.get("IMAGEKIT_PUBLIC_KEY"), urlEndpoint: configService.get("IMAGEKIT_URL_ENDPOINT"), });
|
根目录下创建.env
文件
1 2 3
| IMAGEKIT_PUBLIC_KEY='' IMAGEKIT_PRIVATE_KEY='' IMAGEKIT_URL_ENDPOINT=''
|
在AppModule中注入,允许环境变量全局可用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { ImageKitModule } from 'imagekit-nestjs'; import { ImageKitConfig } from './configs/imagekit.config';
@Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, }), ImageKitModule.forRootAsync({ useFactory: ImageKitConfig, inject: [ConfigService], imports: [ConfigModule], isGlobal: true, }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
|
完成
一些错误
报错
Error: Missing publicKey during ImageKit initialization
控制台打印后发现publickey和private都是undefined
这里是因为没有创建.env设置变量,而且没有把他变成全局可用导致的