Skip to content

Latest commit

 

History

History
143 lines (120 loc) · 5.99 KB

README.md

File metadata and controls

143 lines (120 loc) · 5.99 KB

node-mysql78

  • 十八年ERP开发经验 十年云开发经验 十五年股票期货投资经验 十年投资分析平台开发经验
  • 18 years ERP development experience + 10 years cloud development experience +15 years stock futures investment experience + 10 years investment analysis platform development experience
  • 技术不高 了解业务 擅长解决生产经营实际问题
  • Good understanding of business and solid knowledge on Solving practical problems
  • 逐步把多年开发优化 并且在一直稳定运行中的项目开源
  • Step by Step Open Sources of steady running projects and consistently optimize them.
  • 合作 商务 问题 讨论 欢迎联系email:[email protected] qq群:323397913
  • Welcome to contact my email : [email protected] or join QQ group : 323397913 for further discuss and cooperations
  • 完整框架 开源改造中 未完成...
  • The open source transformation of the total framework has not yet been completed.

框架特色 Frame features

  • 稳定:运行数年 二台单核1G机器搞定数千并发
  • Stable: running for several years on two 1 core CPU 1G memory machines with thousands of concurrency
  • 开发快:几行代码搞定增删查改 线程池
  • Fast development:with just a few lines code,you can add, delete, check and change the thread pool
  • 效率高:有完善的低代码前后端框架 在框架下开发 1后端可轻松配合4前端以上
  • High efficiency: Perfect low code front and back end framework developed under the framework 1 back end can easily match 4 front end above
  • 易扩展:业务表与数据表对应 一个目录就是一套小功能 一个文件就是一个数据表
  • Easy to expand: business table is corresponding with data table , a directory is a set of small functions , a file is a data table
  • 适应强:同时运行在阿里云和腾迅云
  • Strong adaptability: running on Ali cloud and Tecent cloud.
  • 易调试:可设置追踪某几个用户或某表或某目录的所有调用
  • Easy to debug: can be set up to trace a few users or a table or a directory of all calls
  • 易学习:十行代码搞定 想装不会都难
  • Easy to learn: ten lines of code can be done.
  • 易运维:有完善的api调用计数和耗时统计 还有出错微信报警机制
  • Easy operation and maintenance: perfect API call count and time consuming statistics, also  alarm mechanism on wechat
  • 更新快:主要运营中的项目 如有bug或新功能 必然及时更新
  • Update quickly: as its main operation projects, will update in time If there is a new bug or new function
  • 易重构:一个目录一个小系统 一个版本一个路径 新旧api可长期共存 边开车边换胎
  • Easy to refactor: one directory --one system, one path --one version -- old and new APIs can coexist for a long time. you can Changing tires while driving.
  • SAAS:同表不同权 完善权限控制 用户只能查询到自己或自己帐套的资料
  • SAAS:Users with different rights in the same table can only query their own data or their own account sets.

安装 install

npm i node-mysql78

使用 use for testing, you can see ./test/test.js.

初始化 init

import Mysql from "node-mysql78";
let  config={host:"127.0.0.1",password:"test",database:"testdb"}
let mysql78 = new Mysql78(config);

create test table

CREATE TABLE `test` (
  `cid` varchar(36) NOT NULL,
  `kind` varchar(100) NOT NULL,
  `item` varchar(200) NOT NULL,
  `data` varchar(500) NOT NULL,
  `upby` varchar(50) NOT NULL,
  `uptime` datetime NOT NULL,
  `idpk` int(11) NOT NULL AUTO_INCREMENT,
  `id` varchar(36) NOT NULL,
  PRIMARY KEY (`idpk`),
  UNIQUE KEY `ix_id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

add

let up = new UpInfo().getGuest();//Simulated guest upload
       
let sb = "insert into test(cid,kind,item,data,upby,uptime,id)SELECT ?,?,?,?,?,?,?"
let insertId=await mysql78.doMAdd(sb, ["cidval", "kindval", "itemval"
    , "dataval",   up.uname, up.utime, up.mid],up) 

select

let up = new UpInfo().getGuest();//Simulated user upload
   
let sb = "select * from test where id=?" 
let tb=await mysql78.doGet(sb, ["id"],up)

update

let up = new UpInfo().getGuest();//Simulated user upload
   
let sb = "update test set data=? where idpk=?"
let tmp=await mysql78.doM(sb, [up.mid,1], up)

The SQL transaction

let up = new UpInfo().getGuest();//Simulated user upload
let cmds = ["update test set data=? where idpk=?"
    , "update test set item=? where idpk=?"
]
let values = [[up.getNewid(), "1"]
    , [up.getNewid(), "2"]]
let errtexts = ["If the first command goes wrong, what do we want to see."
    , "What do we want to see if the second command fails."]
let logtext = "What do we want to write in the past journal. Just like a normal call's  cmdText.  "
let logvalues = ["Just like a normal call's  val1", "Just like a normal call's  val2"]

let tmp=await mysql78.doT(cmds, values, errtexts, logtext, logvalues, up)
//tmp="ok" or errtext

create system table

let up = new UpInfo().getGuest();//Simulated user upload
mysql78.creatTb(up ) 

Get a MySQL connection and do whatever you want and release the connection.

let con=await mysql78.getConnection( ) ;
//do something
await mysql78.releaseConnection(con);

Adding log information

 let up = new UpInfo().getGuest();//Simulated user upload
mysql78.isLog = true;
let back=await mysql78._addWarn("info info ", "kind", up) ;
//We can query the log by kind or apisys or apiobj or upid or upby...

框架简要说明

后端服务 后端代码示例 前端代码示例


以下为非必需内容

+read more...