nest中构建imagekit.io服务
npm install imagekit-nestjs
npm install @nestjs/config
创建configs/imagekit.config.ts
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
文件
IMAGEKIT_PUBLIC_KEY = "";
IMAGEKIT_PRIVATE_KEY = "";
IMAGEKIT_URL_ENDPOINT = "";
在AppModule中注入,允许环境变量全局可用
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, // is optional
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
完成
一些错误
报错
Error: Missing publicKey during ImageKit initialization
控制台打印后发现publickey和private都是undefined
这里是因为没有创建.env设置变量,而且没有把他变成全局可用导致的