当前位置: 首页 > 后端技术 > Node.js

使用AdminBro为NestJS应用创建简易Admin后台

时间:2023-04-04 00:20:52 Node.js

使用AdminBro为NestJS应用创建一个简单的管理后台admin包,通过简单的设置就可以拥有一个CRUD管理后台。我也一直在寻找具有类似功能的NPM包,最终找到了AdminBro。由于目前AdminBro官网的NestJS+AdminBro文档不是很清楚,所以写了这篇文章,记录下如何在NestJS应用中使用AdminBro。以下代码演示环境为:数据库:MongoDB4.4.3操作系统:Windows10开发工具:VSCode技术栈:NodeJS10.20.1+NestJS7.2.4+AdminBro3.4.0+Mongoose5.12.3安装npmiadmin-bro@admin-bro/nestjs@admin-bro/mongoosenpm我表达@admin-bro/expressexpress-formidablenpm我表达会话配置//comment.schema.tsimport{Prop,Schema,SchemaFactory}来自“@nestjs/mongoose”;从“猫鼬”导入{文档};@Schema()导出类注释扩展文档{@Prop({默认值:Date.now,})created_at:Date;@Prop()user_id:字符串;@Prop()内容:字符串;@Prop()liked_num:数;@Prop()客户端名称:字符串;@Prop()connect_key:string;}exportconstCommentSchema=SchemaFactory.createForClass(Comment);//app.module.tsimport{Module}from'@nestjs/common';importAdminBrofrom'admin-bro';import{AppController}from'./app.controller';import{AppService}from'./app.service';import{数据库,Resource}from'@admin-bro/mongoose';import{Model}from'mongoose';import{getModelToken,MongooseModule}from'@nestjs/mongoose';import{AdminModule}from'@admin-bro/nestjs';import{Comment,CommentSchema}from'../comment/comment.schema';AdminBro.registerAdapter({Database,Resource});@Module({imports:[MongooseModule.forRoot('mongodb://127.0.0.1/comment'),AdminModule.createAdminAsync({useFactory:(commentModel:Model)=>{return{auth:{authenticate:async()=>{//认证递归returnPromise.resolve({email:'test'}}),cookieName:'admin_panel',cookiePassword:'xxx2arfa',},adminBroOptions:{rootPath:'/admin',resources:[commentModel],},};},inject:[getModelToken(Comment.name)],导入:[MongooseModule.forFeature([{name:Comment.name,schema:CommentSchema},]),],}),],controllers:[AppController],providers:[AppService],})exportclassAppModule{}效果演示代码https://github.com/demo-box/adminbro-nestjs-demo