cool-admin(midway版)一个很酷的后台权限管理系统,开源免费,模块化、插件化、极速开发CRUD,方便快速构建迭代后台管理系统,支持serverless、docker、普通服务器等多种方式部署 到 论坛 进一步了解
GitHub license GitHub tag GitHub tag
- 后端:
node.jsmidway.jsegg.jsmysqltypescript - 前端:
vue.jselement-uijsxvuexvue-router
如果你是前端,后端的这些技术选型对你是特别友好的,前端开发者可以较快速地上手。 如果你是后端,Typescript的语法又跟java、php等特别类似,一切看起来也是那么得熟悉。
- 账户:admin
- 密码:123456
https://github.com/cool-team-official/cool-admin-vue
数据库为mysql(>=5.7版本),node版本(>=12.x),首次启动会自动初始化并导入数据
config.orm = { type: 'mysql', host: '127.0.0.1', port: 3306, username: 'root', password: '', database: 'cool-admin', synchronize: true, logging: true, }
$ npm i $ npm run dev $ open http://localhost:8001/
注: npm i如果安装失败可以尝试使用cnpm,或者切换您的镜像源
大部分的后台管理系统,或者API服务都是对数据进行管理,所以可以看到大量的CRUD场景(增删改查),cool-admin对此进行了大量地封装,让这块的编码量变得极其地少。
src/modules/demo/entity/goods.ts,项目启动数据库会自动创建该表,无需手动创建
import { EntityModel } from '@midwayjs/orm'; import { BaseEntity } from 'midwayjs-cool-core'; import { Column } from 'typeorm'; /** * 商品 */ @EntityModel('demo_app_goods') export class DemoAppGoodsEntity extends BaseEntity { @Column({ comment: '标题' }) title: string; @Column({ comment: '图片' }) pic: string; @Column({ comment: '价格', type: 'decimal', precision: 5, scale: 2 }) price: number; }
src/modules/demo/controller/app/goods.ts,快速编写6个api接口
import { Provide } from '@midwayjs/decorator'; import { CoolController, BaseController } from 'midwayjs-cool-core'; import { DemoAppGoodsEntity } from '../../entity/goods'; /** * 商品 */ @Provide() @CoolController({ api: ['add', 'delete', 'update', 'info', 'list', 'page'], entity: DemoAppGoodsEntity }) export class DemoAppGoodsController extends BaseController { /** * 其他接口 */ @Get('/other') async other() { return this.ok('hello, cool-admin!!!'); } }
这样我们就完成了6个接口的编写,对应的接口如下:
POST /app/demo/goods/add新增POST /app/demo/goods/delete删除POST /app/demo/goods/update更新GET /app/demo/goods/info单个信息POST /app/demo/goods/list列表信息POST /app/demo/goods/page分页查询(包含模糊查询、字段全匹配等)
$ npm start $ npm stop
- 使用
npm run lint来做代码风格检查。 - 使用
npm test来执行单元测试。