[userDao.js]
通过请求传入参数来获取user数据
const mysql = require('./../utils/mysqlUtil.js'); var getUserById = async (userId) => { let mysqlOptions = { sql : 'select * from table_user where user_id = ?', args : [userId] }; var users = await mysql.execQuery(mysqlOptions); if(users.length == 0) { return null; } else { return users; } }; module.exports = { getUserById : getUserById };
2.7. 数据库操作
[mysqlUtil.js]
包含了数据库连接池控制,连接建立、释放管理,执行Dao发起的数据库操作请求
const mysql = require('mysql'); const config = require('./../../config/config.local.js'); var connectionPool = mysql.createPool({ 'host' : config.database.host, 'port':config.database.port, 'user' : config.database.user, 'password' : config.database.password, 'database' : config.database.database, 'charset': config.database.charset, 'connectionLimit': config.database.connectionLimit, 'supportBigNumbers': true, 'bigNumberStrings': true }); var release = connection => { connection.end(function(error) { if(error) { console.log('Connection closed failed.'); } else { console.log('Connection closed succeeded.'); } }); }; var execQuery = sqlOptions => { var results = new Promise((resolve, reject) => { connectionPool.getConnection((error,connection) => { if(error) { console.log("Get connection from mysql pool failed !"); throw error; } var sql = sqlOptions['sql']; var args = sqlOptions['args']; if(!args) { var query = connection.query(sql, (error, results) => { if(error) { console.log('Execute query error !'); throw error; } resolve(results); }); } else { var query = connection.query(sql, args, function(error, results) { if(error) { console.log('Execute query error !'); throw error; } resolve(results); }); } connection.release(function(error) { if(error) { console.log('Mysql connection close failed !'); throw error; } }); }); }).then(function (chunk) { return chunk; }); return results; }; module.exports = { release : release, execQuery : execQuery }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持黑区网络。