模块开发

对于一个应用开发,我们应该更加有规划,cool-admin提供了模块开发的概念。

建议模块目录src/modules/模块名

 ├── modules
 │   └── base(基础的权限管理系统)
 │   │    └── controller(api接口)
 │   │    └── dto(参数校验)
 │   │    └── entity(实体类)
 │   │    └── middleware(中间件)
 │   │    └── schedule(定时任务)
 │   │    └── service(服务,写业务逻辑)
 │   │    └── config.ts(必须,模块的配置)
 │   │    └── init.sql(可选,初始化该模块的sql)
 │   │    └── menu.json(可选(7.x新增,配合模块市场使用),初始化该模块的菜单)

模块配置

config.ts

import { ModuleConfig } from '@cool-midway/core';

/**
 * 模块配置
 */
export default () => {
  return {
    // 必须,模块名称
    name: '聊天模块',
    // 必须,模块描述
    description: '基于socket.io提供即时通讯聊天功能',
    // 可选,中间件,只对本模块有效
    middlewares: [],
    // 可选,全局中间件
    globalMiddlewares: [],
    // 可选,模块加载顺序,默认为0,值越大越优先加载
    order: 1;
    // 其他配置,jwt配置
    jwt: 'IUFHOFNIWI',
  } as ModuleConfig;
};

WARNING

config.ts 的配置文件是必须的,有几个必填项描述着模块的功能,当然除此之外,你还可以设置模块的一些特有配置

引入配置


  @Config('module.模块名,模块文件夹名称,如demo')
  config;

sql 导入

在模块中预设要导入的 sql 脚本,位于模块/init.sql

配置

通过该配置开启自动初始化模块数据库脚本

cool: {
    // 是否自动导入数据库
    initDB: true,
  } as CoolConfig,

WARNING

我们不建议在生产环境使用该功能,生产环境是数据库请通过本地导入与同步数据库结构

重新初始化

首次启动会初始化模块数据库,初始化完成会在项目根目录生成.lock文件,下次启动就不会重复导入,如果需要重新导入,删除该文件夹即可

 ├── lock
 │   └── base.sql.lock(base模块)
 │   └── task.sql.lock(task模块)
 │──package.json
Last Updated: