chestnut-utils KOA2工具类
配合chestnut-app使用,也可单独在Koa2中使用
特别注意:
由于oracle使用环境复杂,依赖包未添加到工程中,如需使用oracle数据库请单独安装依赖包
具体请参考https://oracle.github.io/node-oracledb/INSTALL.html#quickstart
配置后请执行
npm install oracledb
提供的方法
数据库操作类
require('chestnut-utils').db
// 首次调用初始化,初始化mysqlconst dbmysql = ; // 初始化pgsqlconst dbpg = ; // 后续再次调用可只传idconst db = ;
db类提供query、find、insert、update、delete函数进行操作,这几个函数均返回promise对象。
query(sql, values)
其中:
sql为可带?的sql语句,比如:select * from table where username=? and age=?
values为sql语句中?对应的数组参数,比如:['nandy007', '18']
此方法返回一个promise对象
示例:
const db = ;const rs = await db
find(table, keys, clause, values)
其中:
table为查找的表名
keys为要查找的字段
clause为条件语句,可包含?
values为条件语句中?对应的参数
const db = ; // 序列化为 select id,title from article_info where id=1 and title='2'let rs = await db; // 序列化为 select activity_id,activity_name from tbl_activity_main where activity_id='4' and activity_name='444'rs = await db;
insert(table, model)
其中:
table为插入的表名
model为插入的数据对象
const db = ; // 序列化为 insert into tbl_activity_main (activity_id, activity_name) values ('4', '444')let rs = await db;
update(table, clause, values)
其中:
table为更新的表名
clause为更新的条件,可带?
values为条件需要的对应参数
const db = ; // 序列化为 update tbl_activity_main set activity_name='333' where activity_id='3'let rs = await db;
delete(table, clause, values)
其中:
table为删除的表名
clause为删除的条件,可带?
values为条件需要的参数
const db = ; // 序列化为 delete from tbl_activity_main where activity_id=2 OR activity_id=4let rs = await db;
页面抓取类
require('chestnut-utils').fetch
此类基于https://github.com/request/request
fetch (url, opts)
其中:
url为要请求的url
opts为请求参数,可参考https://github.com/request/request中的options,同时添加了两个属性:
ctx 为koa的ctx,用户标识当前请求的会话,相同的会话发起的fetch请求的cookie是维持的
requestId 默认为请求的url的host部分,可以自己设置(某些url使用会话共享,不同host的会话一致,可以给它们设置相同的requestId解决)
cookies 为请求设置自定义cookie,形式可以是数组和对象。 数组形如:cookies: [cookie1, cookie2] // cookie值为字符串形如cookieName=cookieValue 对象形如:cookies: {cookieName1: cookieValue1, cookieName2: cookieValue2}
exportsindex = async { const fetch = fetch; let rs = await ; console;}
fetch.clear(sids)
用于根据会话id删除缓存,sids为一个数组,其元素为会话id
html页面拣选类
require('chestnut-utils').jqlite
此类基于cheerio实现,语法类似jquery
用法:
const html = '<div><ul id="ul1"><li>1</li><li>2</li><li>3</li></ul><ul id="ul2"><li>4</li><li>5</li><li>6</li></ul></div>'; const jqlite = jqlite;const $ = ; const lis = ;
编解码类
require('chestnut-utils').codec
此类封装了基于crypto模块的一些编解码功能
aesCipher(str, key)
aes编码。
const codec = codec; const ret = codec;// 将明文信息进行aes编码
aesDecipher(str, key)
aes解码。
const codec = codec; const ret = codec;// 将加密信息解码,得到明文
md5(str)
md5编码。
const codec = codec; const ret = codec;// 将明文信息进行md5编码