Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/haizlin/h-mysql
一直以来很喜欢Thinkphp的数据操作风格,所以在nodejs上也封装了一个MYSQL数据库的常用操作,支持链式调用,实现语义化的数据库操作。
https://github.com/haizlin/h-mysql
javascript mysql node-mysql nodejs orm
Last synced: 5 days ago
JSON representation
一直以来很喜欢Thinkphp的数据操作风格,所以在nodejs上也封装了一个MYSQL数据库的常用操作,支持链式调用,实现语义化的数据库操作。
- Host: GitHub
- URL: https://github.com/haizlin/h-mysql
- Owner: haizlin
- License: mit
- Created: 2019-12-12T09:25:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-17T09:55:45.000Z (3 months ago)
- Last Synced: 2024-10-30T13:24:46.723Z (15 days ago)
- Topics: javascript, mysql, node-mysql, nodejs, orm
- Language: TypeScript
- Homepage:
- Size: 401 KB
- Stars: 9
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# h-mysql
* **网站**:[访问项目github地址](https://github.com/haizlin/h-mysql)
* **介绍**:一直以来很喜欢Thinkphp的数据操作风格,所以在nodejs上也封装了一个MYSQL数据库的常用操作,支持链式调用,实现语义化的数据库操作。## 安装及引用
```javascript
// npm安装
npm i h-mysql --save// yarn安装
yarn add h-mysqlconst hMysql = require('h-mysql');
```## 初始化配置
```javascriipt
const hMysql = new mysql({
host: '127.0.0.1',
user: 'root',
password: '',
database: 'test-db',
port: 3306,acquireTimeout: 1000,
waitForConnections: true, //是否等待链接
connectionLimit: 10, // 连接池数
queueLimit: 0, // 排队限制defaultSqlPre: '',
isPool: true,
isDebug: true
});const {error, result} = await hMysql.table('user')
.where({ id: 100 })
.select()
.execSql();console.log(result);
```## 调用方式
> 规则:调用方法跟顺序无关
```javascript
let hMysql = new hMysql(config)hMysql.table()
.where()
.limit()
.select()
.execSql()
```## [CURD操作](./docs/api.md)
* 添加:[insert] [table] [data]
* 查询:[select] [field] from [table] [alias] [where] [join]
* 更新:[update] [table] set [data] [where]
* 删除:[delete] from [table] [where]## [API 文档](./docs/api.md)
* CURD操作
* [.find()]() ⇒ Promise
* [.select()]() ⇒ Promise
* [.update()]() ⇒ Promise
* [.updateMany()]() ⇒ Promise
* [.insert()]() ⇒ Promise
* [.delete()]() ⇒ Promise
* [.query(sql: string)]() ⇒ Promise* 链式方法
* [.table(tableName: string)]() ⇒ Mysql
* [.alias(tableAlias: string)]()⇒ Mysql
* [.field(opt: string | any[])]() ⇒ Mysql
* [.where(opt: string | any[])]() ⇒ Mysql
* [.limit(limit)]() ⇒ Mysql
* [.page(pageSize, pageNum)]() ⇒ Mysql
* [.data(data:object)]() ⇒ Mysql
* [.order(order)]() ⇒ Mysql
* [.join()]() ⇒ Mysql
* [.union()]() ⇒ Mysql
* [.count()]() ⇒ Promise
* [.group(field)]() ⇒ Mysql
* [.having(field)]() ⇒ Mysql
* [.count(field)]() ⇒ Mysql
* [.max(field)]() ⇒ Mysql
* [.min(field)]() ⇒ Mysql
* [.avg(field)]() ⇒ Mysql
* [.sum(field)]() ⇒ Mysql
* [.lock(field, step)]() ⇒ Promise
* [.distinct(field, step)]() ⇒ Promise
* [.comment(str:string)]() ⇒ Promise
* [.execSql()]() ⇒ string## 迭代计划
- [ ] 完善API文档、架构文档
- [ ] 完善案例
- [ ] 批量插入、批量更新、批量删除
- [ ] 支持更复杂的链式操作
- [ ] 添加测试用例
- [ ] 重写异常处理方式
- [ ] 添加性能测试、性能优化并添加每条语句执行的时间
- [ ] 添加安全测试,防注入
- [ ] 增加对数据库的操作(现在的功能都是针对表)
- [ ] 考虑是不是要支持ORM## 版本更新
* v1.0.0
* 实现常用方法的链式调用,未经过测试,慎用到生产环境,待更新到完善## 项目骨干
- [qq674785876](https://github.com/qq674785876)
- [undefinedYu](https://github.com/undefinedYu)
- [qingleizhang123](https://github.com/qingleizhang123)
- [yxkhaha](https://github.com/yxkhaha)
- [zhaoqian0901](https://github.com/zhaoqian0901)## 贡献
欢迎大家到 [Issues](https://github.com/haizlin/h-mysql/issues) 交流或通过提交**PR**的形式对本项目进行贡献## License
[![MIT](http://api.haizlin.cn/api?mod=interview&ctr=issues&act=generateSVG&type=h-mysql)](https://github.com/haizlin/h-mysql/LICENSE)