Smarty-end
- 为全栈工程师定制的中后台框架
- 无代码和少代码化
- 基于TypeScript
Install
- NodeJS 8.0 need nodejs.org/en
- mysql need
- Clone or download this repository Enter your local directory, and
- install dependencies:
npm install
npm start
Sample
-
约定CRUD接口
只需要添加模型就可以自动生成基础CRUD接口
// 添加模型model/user.js import { Table, Column, Model, DataType } from 'sequelize-typescript'; @Table({}) class User extends Model<User> { @Column({ primaryKey: true, autoIncrement: true, type: DataType.INTEGER, }) public id: number; @Column(DataType.CHAR) public name: string; } export default User
- 自动生成如下接口
- GET /api/user
- POST /api/user/:id
- PUT /api/user/:id
- DELETE /api/user/:id
- 自动生成如下接口
-
装饰器路由
// router/api.js import { get, post } from '../framework/decors' export default class User { /** * 获取购物车 * @param ctx */ @get('/carts') public async list(ctx) { ctx.body = { ok: 1, data: ['hello'] }; } /** * 创建购物车 * @param ctx */ @post('/carts') public add(ctx) { ctx.body = { ok: 1 } } }
-
接口参数校验装饰器
// Post方式
@body({
name: { type: 'string', required: true, max: 200, },
})
// Get方式
@querystring({
id: { type: 'string', required: false, max: 200 },
})
开发计划
【✔️】装饰器路由(完成)
【✔️】约定CRUD接口 (Mysql版本开发完成,Mongoose计划中)
【✔️】约定CMS管理界面 (基于UMI AntD)(计划)
【✔️】图形化模型定制器(计划)
【✔️】CLI工具(完成)
【✔️】Jest单元及E2E测试 (计划)
欢迎志同道合的兄弟们一起交流
Docker使用
获取最新版代码
git pull
强制重新编译容器
docker-compose down docker-compose up -d --force-recreate --build