自撸的一个简单mysql的lib[yf-fpm-dbm]
0. 起因
为了省事,不想引入太多的npm包来实现一个简单的小应用,要足够自由,直接通过json来定义数据就可以实现数据库的操作。 如果你和我一样追求简单的快乐,欢迎前来拍砖。
1. 特性
- 只适用了2个依赖 [‘lodash’, ‘mysql’]
- 所有的代码加上格式化的空行不超过 600 行
- 目前支持mysql
- 通过delflag实现逻辑删除
- 默认带有四个字段:id,createAt,updateAt,delflag
- 支持批量插入
- 支持事务处理
- 如果你熟知bluebird,可以更优雅的使用
2. 使用
-
安装
npm install yf-fpm-dbm
-
配置
var C = {
host:'192.168.1.1',
database:'test',
username:'root',
password:'root',
};
var M = require('yf-fpm-dbm')(C);
- 运行
var arg = {
table: "test",
condition: "delflag=0",
fields: "id,article,ptags,product"
};
M.first(arg, function(error, data){
if(error){
// do error here
}else{
// do success here
}
});
- 说一下事务的用法
M.transation(function(err, atom){
var arg = {
table: "test",
condition: "...",
row: { ... }
};
atom.update(arg, function(err, result1){
if(err){
atom.rollback();
return ;
}
arg = {
table: "test",
condition: "...",
row:{ ... }
};
atom.update(arg, function(err, result2){
if(err){
atom.rollback(function(){
//do rollback code
});
}else{
atom.commit(function(err){
// do commit code
});
}
});
});
});
是不是足够的简单?
3. 小总结
- 造小而精的轮子是个好习惯
- 努力做到明显没有bug,像 lodash 这样的lib一样
- 持续改进,每次改进都可以减少一些代码,让它更轻更冥界,但更强壮更易读
我来自扬州,一个正在努力成为开源世界一员的一位新人.