nodejs环境快速操作mysql数据库

代码哈士奇 等级 639 0 0

github地址https://github.com/dmhsq/dmhsq-mysql-db 引入依赖包 npm install dmhsq-mysql-db 可用于腾讯云SCF 云函数 云开发环境 效果如下 简化了mysql的使用 nodejs环境快速操作mysql数据库

未经本人允许,禁止转载

安装

npm install dmhsq-mysql-db

使用示例

快速操作mysql 错误处理尚未完善 部分错误参考mysql错误

返回的均为Promise对象

所有操作结束末尾必须携带get()

比如 collection.sort({}).get() collection.del({}).get() collection.add({}).get()

所有操作除了get()必须末尾调用 都可以不分先后调用

比如 collection.sort({}).where().get()可以写出 collection.where().sort({}).get()

引入资源

const database = require("dmhsq-mysql-db")

连接数据库

let db = new database({
    host: 'xxx',
    port: 'xxx',
    user: 'xxxx',
    password: 'xxxx',
    database: "xxxx"
})

引用表

let collection = db.table("user")

条件匹配

collection.where(params)

params 对象类型 格式为{username:"zc",old:18} 其中username,old是你要查询的字段值

//如果需要获取数据 就要调用collection.where({username:"zcc"}).get()
collection.where({username:"zcc"})

模糊匹配

collection.like(array)

array 数组类型 格式为[["数据库键名1","值",like],["数据库键名2","值",like]]

like 值可取 "top":以字段开头的 "end":是以字段结尾的 "in":包含字段 输入其他非法值均以in处理

//如果需要获取数据 就要调用
//collection.like([
//    ["username", "z", "top"],
//    ["old", "8", "end"],
//    ["address", "村", "in"]
//]).get()
collection.like([
    ["username", "z", "top"],
    ["old", "8", "end"],
    ["address", "村", "in"]
])

查询数据返回格式

模糊查询 条件查询 只要是查询 都是这个格式

data为查询到的数据 为数组类型

{
  code: 0,
  msg: 'SUCCESS',
  data: [ //这里的返回数据 是模拟数据
    {
      username: 'dmhsq1',
      password: '123zc',
      phone: 11,
      email: null,
      _id: 2,
      token: null,
      token_expired: null,
      last_login_time: null
    },
    {
      username: 'zcc1',
      password: '123',
      phone: 3,
      email: null,
      _id: 1,
      token: null,
      token_expired: null,
      last_login_time: null
    }
  ]
}

查询全部/获取数据

collection.get()

collection.get().then(res => {
    console.log(res)
})

统计个数

collection.count().get()

可搭配下面的where(条件查询) like(模糊查询)

collection.count().get().then(res => {
    console.log(res)
})

返回格式

{
    code: 0,
    msg: 'SUCCESS',
    data: {
        count: 2
    },
    count: '查询到2个数据'
}

条件查询

条件匹配+获取数据

collection.where(params).get()

params:对象类型 格式为 {数据库键1:"值",数据库键2:"值"}

collection.where({
    username: "dmhsq"
}).get().then(res => {
    console.log(res)
})

模糊查询

模糊匹配+获取数据

collection.like(array).get()

array 数组类型 格式为[["数据库键名1","值",like],["数据库键名2","值",like]]

like 值可取 "top":以字段开头的 "end":是以字段结尾的 "in":包含字段 输入其他非法值均以in处理

collection.like([
    ["username", "z", "top"],
    ["old", "8", "end"],
    ["address", "村", "in"]
]).get()

返回格式

{
  code: 0,
  msg: 'SUCCESS',
  data: [ //这里的返回数据 是模拟数据
    {
      username: 'dmhsq1',
      password: '123zc',
      phone: 11,
      email: null,
      _id: 2,
      token: null,
      token_expired: null,
      last_login_time: null
    },
    {
      username: 'zcc1',
      password: '123',
      phone: 3,
      email: null,
      _id: 1,
      token: null,
      token_expired: null,
      last_login_time: null
    }
  ]
}

插入数据

collection.add(params)

params:对象类型 格式为 {数据库键1:"值",数据库键2:"值"}

collection.add({
    username: "dmhsq",
    password: "dmhsq",
    _id: 123176312
}).get().then(res => {
    console.log(res)
})

返回格式

{
    code: 0,
    msg: 'SUCCESS',
    data: {
        add: 1 //数据增加个数
    },
    add: '增加1个数据'
}

更新数据

collection.updata(params)

params:对象类型 格式为 {数据库键1:"值",数据库键2:"值"}

可使用 where like


collection.updata({
    password: "zccc",
    old:18
}).where({
    username: "dmhsq"
}).get().then(res=>{
    console.log(res)
})

删除数据

collection.del() 删除操作

可使用 where like

collection.del().where({
    username: "dmhsq"
}).get().then(res => {
    console.log(res)
})

返回格式

{
    code: 0,
    msg: 'SUCCESS',
    data: {
        del: 1
    },
    del: '删除1个数据'
}

返回指定字段(不添加会返回全部)

collection.field(array)

array:数组类型 格式为["数据库键名1","数据库键名2"]


//获取全部
collection.field(["username"]).get()

//模糊匹配
collection.field(["username"]).like({username:"z"},"top").get().then(res=>{
    console.log(res)
})

//条件匹配
collection.field(["username"]).where({username:"zcc"}).get().then(res=>{
    console.log(res)
})

返回格式

{
    code: 0,
    msg: 'SUCCESS',
    data: [{
        username: 'zcc1',
        _id: 1
    }, {
        username: 'dmhsq1',
        _id: 2
    }]
}

排序

collection.sort(params)

params:对象类型 格式为 {数据库键名1:"DESC",数据库键名2:"ASC"}

DESC为降序 ASC降序

单个字段 collection.sort({_id:"DESC"})

多个字段 collection.sort({_id:"DESC",phone:"DESC"})


collection.sort({_id:"DESC",phone:"DESC"}).like({username:"1"},"in").get().then(res=>{
    console.log(res)
})
//或者
collection.like({username:"1"},"in").sort({_id:"DESC",phone:"DESC"}).get().then(res=>{
    console.log(res)
})

排序后返回的数据格式和查询数据结果格式一样

自定义查询语句

如果以上方法无法满足您的需求 您可以自定义查询语句

collection.sqlQuery(sql,type)

sql为自定义查询语句

type可不填 不填自动识别操作类型

type不影响查询 只是格式化返回的数据格式

type可选值为 updata(更新) del(删除) count(计数) add(插入)

无需后缀添加get()


//如果是查询数据库数据
collection.sqlQuery("SELECT * FROM user").then(res=>{
    console.log(res)
})

//如果是删除数据
collection.sqlQuery("DELETE FROM user WHERE username = 'zcc2'").then(res=>{
    console.log(res)
})
收藏
评论区

相关推荐

nodejs环境快速操作mysql数据库
github地址 引入依赖包 npm install dmhsqmysqldb可用于腾讯云SCF 云函数 云开发环境 效果如下 简化了mysql的使用 未经本人允许,禁止转载 安装npm install dmhsqmysqldb 使用示例快速操作mysql 错误处理尚未完善 部分错误参考mysql错误返回的均为Prom
MHA部署
参考:[http://www.cnblogs.com/gomysql/p/3675429.html](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.cnblogs.com%2Fgomysql%2Fp%2F3675429.html) 1.在所有节点安装MHA node所需的perl模
MySQL 5.6 Generic Binary安装与配置
安装软件包 \# mkdir -p /opt/mysql \# mv mysql-5.6.17-linux-glibc2.5-x86\_64.tar.gz /opt/mysql \# cd /opt/mysql \# tar xvfz mysql-5.6.17-linux-glibc2.5-x86\_64.tar.gz \# 创建数据库
linux mysql 操作命令
1.linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令: mysqladmin restart /ect/init.d/mysql restart (前面为mysql的安装路径) 3.linux下关闭my
mysql主从集群搭建;(集群复制数据)
1.搭建mysql 5.7环境 chown mysql:mysql -R /data/ groupadd mysql useradd -g mysql mysql yum install numactl rpm -e mysql-libs --nodeps rpm -ivh mysql-community-common-5.7.21-1
mysql维护日志
Can’t open and lock privilege tables: Incorrect file format ‘db’ ubuntu 16.04 LTS,mysql 5.7.23 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf,在\[mysql\]行后增加 skip-grant-tables,让mysql服
Centos7二进制安装Mysql8.0.14
准备工作 下载mysql二进制包,以及安装mysql依赖包 #安装mysql所需依赖包 yum install libaio* -y #下载mysql二进制安装包 wget http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.14-linux-glibc2.
FTP服务器之pure
1.    Mysql的连接        [root@localhost ~]# mysql -uroot -pxxxxxx(your mysql password) 2.    建立mysql认证数据库 mysql>create database pureftpd; mysql>grant privileges all on
FreeBSD python安装MySQL
fetch https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.4.zip unzip MySQL-python-1.2.4.zip cd MySQL-python-1.2.4 python setup.py install ln -s /usr/loca
Linux 下使用yum 命令安装MySQL
### Linux下使用yum安装MySQL,以及启动、登录和远程访问MySQL数据库。 ### 1、yum安装mysql 1\. 查看有没有安装包:    yum list mysql\*     #移除已经安装的mysql     yum remove mysql mysql-server mysql-libs compat-mysql5
Linux下Nodejs安装之Hello World
去官网下载安装包 node-v0.12.7.tar.gz 1.mkdir /usr/local/nodejs 2.tar -zvxf node-v0.12.7.tar.gz 3\. cd node-v0.12.7.tar.gz 4\. ./configure --prefix=/usr/local/nodejs 5.make && make ins
Linux下卸载mysql8.x版本
一、停止MySQL [root@localhost /]# service mysqld stop 二、查看当前安装mysql情况,查找以前是否装有mysql [root@localhost /]# rpm -qa|grep -i mysql mysql-community-client-8.0.13-1.el7.x86_64
Netbeans6.5 Beta
Feature Highlights ------------------ **PHP** * PHP Editor (Code completion, syntactic and semantic code highlighting) * Support for heredoc notation and PHTML * Debugging
NodeJs在windows上安装配置测试
Node.js简介 简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。 安装环境 本机系统:Windo
Python自动化开发学习的第十周
MySQL的基础知识 ========== MySQL的入门教程 ---------- https://www.w3cschool.cn/mysql/mysql-tutorial.html   MySQL的 安装、管理 ------------ https://www.w3cschool.cn/mysql/mysql-install.html ht