This action will force synchronization from 闪酷/cool-admin-midway, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
cool-admin(midway版)一个很酷的后台权限管理系统,开源免费,模块化、插件化、极速开发CRUD,方便快速构建迭代后台管理系统,支持serverless、docker、普通服务器等多种方式部署 到 官网 进一步了解。
Ai时代,很多老旧的框架已经无法满足现代化的开发需求,Cool-Admin开发了一系列的功能,让开发变得更简单、更快速、更高效。
node.js
midway.js
koa.js
typescript
vue.js
element-plus
jsx
pinia
vue-router
mysql
postgresql
sqlite
如果你是前端,后端的这些技术选型对你是特别友好的,前端开发者可以较快速地上手。 如果你是后端,Typescript 的语法又跟 java、php 等特别类似,一切看起来也是那么得熟悉。
如果你想使用 java 版本后端,请移步cool-admin-java
https://github.com/cool-team-official/cool-admin-vue
或
https://gitee.com/cool-team-official/cool-admin-vue
或
https://gitcode.com/cool_team/cool-admin-vue
src/config/config.local.ts
以 Mysql 为例,其他数据库请参考数据库配置文档
Mysql(>=5.7版本
),建议 8.0,node 版本(>=16.x
),建议 18.x,首次启动会自动初始化并导入数据
// mysql,驱动已经内置,无需安装
typeorm: {
dataSource: {
default: {
type: 'mysql',
host: '127.0.0.1',
port: 3306,
username: 'root',
password: '123456',
database: 'cool',
// 自动建表 注意:线上部署的时候不要使用,有可能导致数据丢失
synchronize: true,
// 打印日志
logging: false,
// 字符集
charset: 'utf8mb4',
// 是否开启缓存
cache: true,
// 实体路径
entities: ['**/modules/*/entity'],
},
},
},
$ npm i
$ npm run dev
$ open http://localhost:8001/
注: npm i
如果安装失败可以尝试使用cnpm,或者切换您的镜像源,推荐使用pnpm
大部分的后台管理系统,或者 API 服务都是对数据进行管理,所以可以看到大量的 CRUD 场景(增删改查),cool-admin 对此进行了大量地封装,让这块的编码量变得极其地少。
src/modules/demo/entity/goods.ts
,项目启动数据库会自动创建该表,无需手动创建
import { BaseEntity } from '@cool-midway/core';
import { Column, Entity, Index } from 'typeorm';
/**
* 商品
*/
@Entity('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 { CoolController, BaseController } from '@cool-midway/core';
import { DemoAppGoodsEntity } from '../../entity/goods';
/**
* 商品
*/
@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 run lint
来做代码风格检查。此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。