1、在package.json中添加mysql依赖

命令:npm install mysql --save

2、项目中添加mysql文件夹

> 文件夹下创建config文件夹,并在config下创建index.js写入mysql配置文件

const mysql = require('mysql')

const connectdb=()=>{
let connection = mysql.createConnection({
host : 'localhost',
port : '3306',
user : 'root',
password : '',
database : 'rehab'
})
return connection;
} module.exports=connectdb;

mysql 配置

> mysql文件夹下创建mysql.js文件

const conn = require('./config/index');
const connection = conn(); // 查询所有数据
let selectAll = async(sql,callback)=>{
return sqlQuery(sql)
}
let selectBy = async(table,where,callback)=>{
var _WHERE='';
// var keys='';
// var values='';
for(var k2 in where){
_WHERE+=k2+"='"+where[k2]+"' AND ";
//_WHERE+= k2+"='"+where[k2]+"'";
}
_WHERE=_WHERE.slice(0,-5)
// UPDATE user SET Password='321' WHERE UserId=12
//update table set username='admin2',age='55' where id="5";
var sql="SELECT * FROM "+table+' WHERE '+_WHERE;
// console.log(sql);
return sqlQuery(sql)
}
// 插入一条数据
let insertData =async (table,datas,callback)=>{
var fields='';
var values='';
for( var k in datas){
fields+=k+',';
values=values+"'"+datas[k]+"',"
}
fields=fields.slice(0,-1);
values=values.slice(0,-1);
// console.log(fields,values);
var sql="INSERT INTO "+table+'('+fields+') VALUES('+values+')';
return sqlQuery(sql)
} /**
* 更新一条数据
* @param {*} table 数据表名
* @param {*} sets 更新字段
* @param {*} where 限制条件
*/
let updateData=async function(table,sets,where){
var _SETS='';
var _WHERE='';
var keys='';
var values='';
for(var k in sets){
_SETS+=k+"='"+sets[k]+"',";
}
_SETS=_SETS.slice(0,-1);
for(var k2 in where){
_WHERE+=k2+"='"+where[k2]+"' AND ";
//_WHERE+= k2+"='"+where[k2]+"'";
}
_WHERE=_WHERE.slice(0,-5)
// UPDATE user SET Password='321' WHERE UserId=12
//update table set username='admin2',age='55' where id="5";
var sql="UPDATE "+table+' SET '+_SETS+' WHERE '+_WHERE;
// console.log(sql);
return sqlQuery(sql)
} // 删除一条数据
let deleteData=function(table,where,callback){
var _WHERE='';
for(var k2 in where){
_WHERE+=k2+"='"+where[k2]+"' AND ";
//_WHERE+= k2+"="+where[k2];
}
_WHERE=_WHERE.slice(0,-5)
// DELETE FROM user WHERE UserId=12 注意UserId的数据类型要和数据库一致
var sql="DELETE FROM "+table+' WHERE '+_WHERE;
// connection.query(sql,callback);
return sqlQuery(sql)
} let sqlQuery=function(sql){
return new Promise((resolve,reject)=>{
connection.query(sql,(err,result)=>{
if(err){
console.log('错误信息-',err.sqlMessage);
let errNews = err.sqlMessage;
reject(errNews)
} else{
resolve(result)
}
})
})
}
module.exports = {
selectAll,
selectBy,
insertData,
deleteData,
updateData,
}

mysql帮助类

3、创建api文件,调用mysql数据库

let util = require('../utils/util')
const db = require('../mysql/mysql.js')
var logger = require('log4js').getLogger("index");
let util_http = require('../utils/util_http') module.exports = { /**
* 根据数据表名查询全部
*/
'GET /mysql/findAll': async (ctx, next) => {
ctx.response.type = 'application/json'; let table = ctx.request.query.table
let sql = `select * from ${table}`
await db.selectAll(sql).then(res => {
ctx.body = util.res(res)
}).catch(err => {
ctx.body = util.err(err)
})
},
/**
* 根据数据表名和指定查询条件查询
*/
'GET /mysql/findBy': async (ctx, next) => {
ctx.response.type = 'application/json';
ctx.append('Access-Control-Allow-Origin', '*')
let table = ctx.request.body.table
let where = ctx.request.body.where
await db.selectBy(table, where).then(res => {
ctx.body = util.res(res) }).catch(err => {
ctx.body = util.err(err)
})
},
/**
* 根据数据表名和id查询
*/
'GET /mysql/findById': async (ctx, next) => {
ctx.response.type = 'application/json';
ctx.append('Access-Control-Allow-Origin', '*')
let table = ctx.request.query.table
let id = ctx.request.query.id
let sql = `select * from ${table} where id='${id}'`
await db.selectAll(sql).then(res => {
ctx.body = util.res(res) }).catch(err => {
ctx.body = util.err(err)
})
}, /**
* 添加数据
*/
'POST /mysql/add': async (ctx, next) => {
// ctx.response.type = 'application/json';
// ctx.res.header('Access-Control-Allow-Origin', '*'); if (ctx.req.method == 'POST') {
let data = await util_http.getPOSTRes(ctx.req)
data = JSON.parse(data)
let table = data.table
let params = data.params
await db.insertData(table, params).then(res => {
ctx.body = util.res(res)
}).catch(err => {
ctx.body = util.err(err)
})
} else {
ctx.body = util.err('请求错误')
} },
/**
* 更新数据
*/
'PUT /mysql/update': async (ctx, next) => {
if (ctx.req.method == 'PUT') {
let data = await util_http.getPOSTRes(ctx.req)
data = JSON.parse(data)
let table = data.table
let sets = data.sets
let where = data.where
// console.log('sql', table, sets, where)
await db.updateData(table, sets, where).then(res => {
ctx.body = util.res(res)
}).catch(err => {
ctx.body = util.err(err)
})
} else {
ctx.body = util.err('请求错误')
}
},
// /**
// * 更新数据
// */
// 'PATCH /mysql/patch': async (ctx, next) => {
// // ctx.response.type = 'application/json';
// console.log('patch init')
// ctx.body = '2222'
// //ctx.body=util.res('123')
// // console.log('request',ctx.request)
// // let table = ctx.request.body.table
// // console.log('table',table)
// // let sets = ctx.request.body.sets
// // let where = ctx.request.body.where
// // await db.updateData(table, sets, where).then(res => {
// // ctx.body = util.res(res)
// // }).catch(err => {
// // ctx.body = util.err(err)
// // })
// },
/**
* 删除数据
*/
'DELETE /mysql/delete': async (ctx, next) => {
let table = ctx.request.body.table
let where = ctx.request.body.where
await db.deleteData(table, where).then(res => {
ctx.body = util.res(res)
}).catch(err => {
ctx.body = util.err(err)
})
},
/**
* 根据数据表名和id删除数据
*/
'DELETE /mysql/deleteById': async (ctx, next) => {
ctx.response.type = 'application/json';
ctx.append('Access-Control-Allow-Origin', '*')
let table = ctx.request.query.table
let id = ctx.request.query.id
let where = {
id: id
}
await db.deleteData(table, where).then(res => {
ctx.body = util.res(res)
}).catch(err => {
ctx.body = util.err(err)
})
}
};

mysql 数据库操作

git地址:https://github.com/wuyongxian20/node-api.git

更多详细参考下篇node.js接口调用示例

node.js 调用mysql 数据库的更多相关文章

  1. 使用node js 操作 Mysql 数据库

    使用node js 操作 Mysql 数据库 http://www.nodejs.org/ //node js 数据库操作 MySQL //使用https://github.com/felixge/n ...

  2. Node.js连接MySQL数据库及构造JSON的正确姿势

    做一下整理,以前也很随意的引入包链接数据库,后来发现常常连接出问题,异常退出,后来使用在网上一个方法解决问题,网址由于书签丢失,抱歉不能引用了.再有就是简单的模块化下,使得目录合理点,再有就是说明一下 ...

  3. node.js操作MySQL数据库

    MySQL数据库作为最流行的开源数据库.基本上是每个web开发者必须要掌握的数据库程序之一了. 基本使用 node.js上,最受欢迎的mysql包就是mysql模块. npm install mysq ...

  4. Node.js使用MySQL数据库中对RowDataPacket对象的使用

    使用Node.js开发使用MySQL数据库的网站,在查询后返回一RowDataPacket类型的对象 原先使用toString()方法一直得到仅为object的字符串,无法使用 后思考,才发现忽略了其 ...

  5. Node.js连接MySQL数据库报错

    解决Node.js第一次连接MySQL数据库时出现[SELECT ERROR] - ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authen ...

  6. node.js操作mysql数据库之增删改查

    安装mysql模块 npm install mysql 数据库准备 mysql server所在的机器IP地址是192.168.0.108,登录账户就用root@123456 在mysql中创建tes ...

  7. Node.js 实现 MySQL 数据库增删改查

    安装mysql $ npm isntall mysql 连接数据库 需要根据实际配置修改数据库用户名.及密码及数据库名 let mysql = require('mysql'); let connec ...

  8. node.js与mysql数据库的交互

    我们已经建好了数据库也建好了表,现在我们想查询数据库表中的内容,应该怎么做呢? 代码如下: var mysql = require('mysql'); //导入mysql包模块 var connect ...

  9. Node.js 连接 MySQL数据库

    安装指令:npm install mysql var mysql = require("mysql");console.log(mysql); // 创建链接对象 var conn ...

随机推荐

  1. java IO 文件批量重命名

    java IO 文件批量重命名 package com.vfsd.renamefile; import java.io.File; import java.io.FileInputStream; im ...

  2. ArrayList数组操作

    String字符类型的操作方法 public static void main(String[] args) { // ArrayList ArrayList<String> list = ...

  3. [转]如何更换 Ubuntu 18.04 LTS 的 GDM 登录界面背景

    链接地址:https://www.linuxprobe.com/ubuntu-gdm-login.html

  4. c#写windows服务 小demo

    前段时间做一个数据迁移项目,刚开始用B/S架构做的项目,但B/S要寄存在IIs中,而IIs又不稳定因素,如果重启IIs就要打开页面才能运行项目.有不便之处,就改用Windows服务实现.这篇就总结下, ...

  5. [LeetCode] 849. Maximize Distance to Closest Person 最大化最近人的距离

    In a row of seats, 1 represents a person sitting in that seat, and 0 represents that the seat is emp ...

  6. logstash kafka output 日志处理

    今天在用logstash解析日志并传送给kafka的时候,发现kafka能收到数据但数据内容已经丢失,具体如下: 在logstash output中增加输出样式之后,问题解决kafka再次接受到的内容 ...

  7. 按键板的原理和实现--基于GPIO的按键板

    上篇介绍简单的ADC实现,需要IC提供一个额外的ADC.但出于IC成本的考虑,无法提供这个的ADC时,但提供了多个额外的GPIO(General Purpose Input Output:双向的:可以 ...

  8. C#中HttpWebRequest、WebClient、HttpClient的使用

    HttpWebRequest: 命名空间: System.Net,这是.NET创建者最初开发用于使用HTTP请求的标准类.使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如  ...

  9. Python12之列表3(列表常用操作符,以及常用的内置函数)

    一.比较操作符: list1 > list2             比较两个列表的大小,Python会直接从列表的第0个元素进行比较,若相等,则继续下一个比较 得到的结果是布尔值 二.逻辑操作 ...

  10. 剑指offer44:翻转单词顺序列

    1 题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“stude ...