淘先锋技术网

首页 1 2 3 4 5 6 7

最近本人在用node写一点小demo, 因为用node做后台的话少不了操作mysql, 刚开始就用了npm中的mysql包, 看了下文档, 大致了解了一下基本使用方式

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
  database : 'my_db'
});
 
connection.connect();
 
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});
 
connection.end();

先连接数据库, 再写SQL语句, 通过query方法执行SQL, 得到返回结果。
可是由于本人是一名phper, 经常操作mysql, 可很少用写源生SQL的方式来操作mysql(除非有时候在控制台里使用或有一些比较复杂的SQL语句), 我不知道你们有没有觉得不太方便, 但至少我觉得操作起来变复杂了一些。
于是我在npm上找了一番, 看有没有对mysql操作进行一系列封装的简便操作的npm包。经过一番捣鼓, 最终发现了一个比较不错的包, 和我们phper用tp框架操作mysql基本很相似。包名叫 easy-mydb
(npm地址:https://www.npmjs.com/package/easy-mydb)
而且我发现还有中文文档(https://github.com/huchengyong/easy-mydb/blob/master/README_ZH.md)
这个包配置数据库的连接方式和npm中mysql官方的使用方式基本保持一致, 目前只发现有一个参数 prefix 和官方不一样, 这个参数是用来指明数据表的前缀的。
下面来介绍一下基本的使用方法
安装后实例化, 实例化的时候传入配置参数

var EasyMydb = require('easy-mydb');
var Db = new EasyMydb({
	host: '127.0.0.1',
	user: 'root',
	password: '123456',
	database: 'test_db',
	prefix: '' //表前缀可不填
})

然后通过model方法实例化一个表的模型, 比如user表

这里的user必须是表名, 如果定义了前缀了的话, 它会默认加上前缀, 不需要自己手动写了, 比如表名是db_user, 那么实模型的时候依然是

只不过上面的prefix参数要填db_
接下来 User 后面的所有操作都是针对user表的,例如查询数据

这是一个select查询, 查询所有的数据, 可以where方法添加查询条件, 或者limit方法, 限制查询的结果数量, 还有order 排序, group分组等一系列操作

上面代码代表的是 根据class分组, 筛选出10名按照age从大到小排序的男性用户
如果想添加一条数据的话

还能支持批量插入

User.insertAll([
	{name: 'Tom', age: '18', gender: '男'},
	{name: 'Jerry', age: '20', gender: '男'},
	...
])

更新操作

把id为1的用户的age改为20
删除操作

删除id为1的用户

基本的增删改查就像上述一样, 有时候需要配合where方法来添加过滤条件
where方法也有多种用法, 详情见官方文档

还有几种聚合统计的用法, 用起来也很方便

User.count() //统计数量
User.max('age') //最大值
User.min('age') //最小值
User.avg('age') //平均数
User.sum('age') //聚合相加

用完了之后还需要release来释放链接

好了, 基本的介绍就到这了, 更多的使用方法还是希望你能去官方文档去摸索, 希望这篇文章能对你有所帮助