node数据库操作
- 基本增删改查操作
- 增加rules校验
- 根据rules进行数据库初始化
使用
const koa = ;const dbrule = ; const app = ;// 数据库及字段配置const rules = // 表名称 user: // 字段名称 username: type: 'string' max: 20 name: '姓名' db: type: 'float' // 数据库类型,和外部type可以不一致 inc: false // 是否自增字段 primary: false // 是否主键,和unique不能共用 unique: false // 是否创建唯一索引 const config = // 数据库连接配置,参考 https://github.com/laomu1988/ali-rds db: host: 'your-rds-address.mysql.rds.aliyuncs.com' port: 3306 user: 'your-username' password: 'your-password' database: 'your-database-name' { appdbs = await ; // 初始化数据库 app; // 使用中间件,在ctx上增加dbs和rules app; app;};
Todo
- 当未修改数据时,不执行alert table
- 当是primary或unique时,限制字段长度
- unique且可以为null时简化处理
- 补充使用文档
- 仅生成更新sql语句脚本,不执行操作
- 增加extra配置
ChangeLog
- v1.2.0(2020.09.09)
- fix: db.create时不应该将db.default添加到默认值中,db.default默认值应该是数据库sql的默认值
- v1.1.5(2020.09.08)
- feat: 增加rule.db.extra属性,例如ON UPDATE CURRENT_TIMESTAMP
- fix: 日期格式存在default值时,避免转换为字符串,例如CURRENT_TIMESTAMP
- v1.1.4(2020.09.04)
- fix: db.findOne未找到对象时不报错
- v1.1.3
- 升级async-validator到1.12.2版本,避免部分情况校验出错时无回调
- v1.1.2
- 使用rule.db.type作为默认类型
- v1.1.1
- 新增primary字段时语句修复
- 更新时主键非id时处理修复
- 字符串默认长度改为64字符,避免默认长度过长
- v1.1.0
- 当未修改数据时,不执行更新数据表操作
- 增加部分测试case
- v1.0.4
- 数据库初始化完毕后关闭多余链接;
- 增加数据库操作日志
- v1.0.3
- 修复重复创建索引问题
- v1.0.1
- 增加自动生成koa中间件方法
- v1.0.0
- 独立数据库操作,取消集成到koa内部