nodejs封装mysql执行语句函数

1.mysql.js

var mysql = require('mysql');

module.exports = function m_connection(req,callback,notoken){
	let m_req = req;
	let m_callback = callback;
	let m_notoken = notoken;
	
	var connection = mysql.createConnection({
		host: 'mysql数据库地址',
		user: '***',
		password: '***',
		database: '***',
		autoReconnect: true,
		multipleStatements: true,    //支持执行多条sql语句
	});
	
	connection.connect();
	
	callback(connection);
	
};

2.common.js

var mysql = require('../bd/mysql.js');

module.exports = {
	//sql语句单条执行
	sql(res, sql_str, callback) {
		mysql('',(sql)=> {
			sql.query(sql_str, (error, results, fields)=> {
				if (error) {
					res.send(error);
				}else{
					callback(results);
				}
			});
			sql.end();
		})
	},
	
	//sql语句批量执行
	sqlBatch(res, sql2, callback) {
		let sql1 = `BEGIN;`;
		let sql_all = sql1 + sql2;
		mysql('', (sql)=> {
			sql.query(sql_all, (error, results, fields)=> {
				if (error) {
					//事务回滚
					sql.query('ROLLBACK;', (error2, results2, fields2)=> {
						if (error2) {
							res.send(error2);
						}else{
							// console.log(results2);
							res.send({
								status: 202,
								message: 'success',
								data: results2
							});
						}
						sql.end();
					});
				}else{
					//事务确认
					sql.query('COMMIT;', (error3, results3, fields3)=> {
						if (error) {
							res.send(error);
						}else{
							results.shift();
							callback(results);
						}
						sql.end();
					});
				}
			});
		})
	}
}

3.执行单条SQL语句

const express = require('express');
var mysql = require('../../bd/mysql.js');
var common = require('../../common/common.js');
var router = express.Router()

router.get('/userList', (req,res)=> {
	common.sql(res, `SELECT * FROM t_user`, (results)=>{
		res.send({
			code: 200,
			message: 'success',
			data: results
		});
	})
})

4.执行多条SQL语句

const express = require('express');
var mysql = require('../../bd/mysql.js');
var common = require('../../common/common.js');
var router = express.Router()

router.get('/typeAndSub', (req,res)=> {
	let sql1 = `SELECT * FROM t_type WHERE deleted = 0;`;
	let sql2 = `SELECT * FROM t_sub_type WHERE deleted = 0;`;
	let sql_str = `${sql1}${sql2}`;
	
	common.sqlBatch(res, sql_str, (results)=>{
		res.send({
			code: 200,
			message: 'success',
			data: {
				type: results[0]
				subType: results[1]
			}
		});
	})
})

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值