Skip to content

Commit

Permalink
docs: 更新README
Browse files Browse the repository at this point in the history
  • Loading branch information
fanzhiwen committed Sep 12, 2023
1 parent f1cd5c1 commit ba724ca
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 39 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ jobs:
- name: Release Docker Image
run: |
chmod +x ./release.sh
DOCKER_REPO=${{ vars.DOCKER_REPO }} DOCKER_USER=${{ secrets.DOCKER_USER }} DOCKER_PASS=${{ secrets.DOCKER_PASS }} ./release.sh
DOCKER_REPO=${{ secrets.DOCKER_REPO }} DOCKER_USER=${{ secrets.DOCKER_USER }} DOCKER_PASS=${{ secrets.DOCKER_PASS }} ./release.sh
78 changes: 40 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,60 @@
# Express-Demo

基于 Express.js 框架实现,基础功能齐全,简单,快速
基于 Express.js 框架实现的一个 demo 框架,基础功能齐全,可基于该 demo 快速进行业务开发

## 分支介绍

本分支是一个简单的 express 项目的最佳实践。
## 项目参数

我们不以技术角色(`route`, `controller`, `service`, `model`等)进行分类,而是把每一种模型相关的全部内容都放在同一个目录(modules)下。
同时,我们也提供了难免会出现的子模块(理解为业务概念上的父子类)的写法,基于该种框架,子模块的写法非常随意,在这种模式下,类与行为委托几乎实现的作用一模一样。
- Node.js >= v16
- MongoDB >= v4.2

如果你只需要开发非常简单的业务,业务概念之间没有很强的关联,那么这个框架将是你非常好的选择。
如果你的项目未来会有进一步的业务拓展,建议使用使用面向对象的编程思想,采用进一步的框架实现。
## 快速开始

## 项目启动
- 项目开发

```sh
# 在项目根目录执行以下命令:
./init.sh

# 启动开发环境
npm run dev
# 在项目根目录下:
./init.sh # 项目初始化
npm run dev # 启动开发环境
```

## 项目参数
- 构建上线(通过 github actions 实现 ci)

- Node.js >= v16
- MongoDB >= v4.2
- 在 github repo 中配置`actions secrets`.
- DOCKER_REPO - docker 仓库,例如`John/express-demo`.
- DOCKER_USER - docker 用户, 例如`John`
- DOCKER_PASS - docker 用户密码.
- 代码提交到 github repo,自动执行 github actions。

## 功能介绍

1. Http 路由监听
2. 用户登录/注册(本地策略)
3. 基于 rbac 的角色权限管理
4. 基于 multer 的文件上传
5. 脚本自动化执行
- RESTFUL API
- 用户登录/注册(本地策略)
- 基于`rbac`的角色权限管理
- 基于`multer`实现文件的上传
- 支持插件
- 支持自定义脚本

## 目录结构

- /root
- [……一系列工程配置文件]
- public:公共访问目录
- node_modules:项目依赖
- test:测试代码目录
- uploads:文件上传目录
- src 目录:源代码目录
- assets:静态文件目录
- [apis]:接口路由与 contrller 层代码目录(可选,业务复杂推荐启用)
- [business]:商业逻辑目录(可选,业务复杂推荐启用)
- config:配置文件目录
- /
- assets: 静态资源目录
- public:公开资源目录
- logs: 系统日志目录
- uploads:系统文件上传目录
- node_modules:项目依赖目录
- src:源代码目录
- \_config: 项目配置目录
- config.example.ts:配置文件模板
- config.ts:配置文件
- lib:功能方法库目录
- apis:接口路由与 contrller 层代码目录
- business:商业逻辑目录
- components: 功能组件目录
- dao: 数据访问层目录
- entities:数据模型目录
- lib: 公共库目录
- loaders:项目启动程序目录
- modules:业务数据模型目录
- scripts:脚本目录
- types:类型声明文件目录
- app.ts:项目入口文件
- plugins: 插件目录(服务启动时自动加载)(TODO)
- scripts:脚本目录(服务启动时自动加载,每个同名文件仅会加载一次)
- types:全局类型声明文件目录
- index.ts:项目入口文件
- [……一系列工程配置文件]

0 comments on commit ba724ca

Please sign in to comment.