node mysql 模块 封装_node封装mysql模块

'use strict';

const mysql= require('mysql');var local = true

varpool//创建连接池

if(local) {

pool=mysql.createPool({

connectionLimit:50,

host:'localhost',

user:'root',

password:'root',

database:'crawl',

multipleStatements:true //是否允许执行多条sql语句

});

}//将结果已对象数组返回

var row = (sql, ...params) =>{return new Promise(function(resolve, reject) {

pool.getConnection(function(err, connection) {if(err) {

reject(err);return;

}

connection.query(sql, params,function(error, res) {

connection.release();if(error) {

reject(error);return;

}

resolve(res);

});

});

});

};//返回一个对象

var first = (sql, ...params) =>{return new Promise(function(resolve, reject) {

pool.getConnection(function(err, connection) {if(err) {

reject(err);return;

}

connection.query(sql, params,function(error, res) {

connection.release();if(error) {

reject(error);return;

}

resolve(res[0] || null);

});

});

});

};//返回单个查询结果

var single = (sql, ...params) =>{return new Promise(function(resolve, reject) {

pool.getConnection(function(err, connection) {if(err) {

reject(err);return;

}

connection.query(sql, params,function(error, res) {

connection.release();if(error) {

reject(error);return;

}for (let i in res[0]) {

resolve(res[0][i] || null);return;

}

resolve(null);

});

});

});

}//执行代码,返回执行结果

var execute = (sql, ...params) =>{return new Promise(function(resolve, reject) {//获取连接

pool.getConnection(function(err, connection) {if(err) {

reject(err);return;

}//操作数据库

connection.query(sql, params, function(error, res) {//释放

connection.release();if(error) {

reject(error);return;

}

resolve(res);

});

});

});

}//模块导出

module.exports ={

ROW: row,

FIRST: first,

SINGLE: single,

EXECUTE: execute

}/*连接mysql*/

functionconnectToMysql() {var connection =mysql.createConnection({

host:'',

user:'',

password:'',

database:''});

connection.connect();//查询

connection.query('SELECT * FROM user;', function(err, rows, fields) {if (err) throwerr;

console.log('The solution is: ', rows[0]);

});//关闭连接

connection.end();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Express是一个流行的Node.js web应用程序框架,而MySQL是一个关系型数据库管理系统。在Express中使用MySQL,我们通常需要编写一些重复的代码来连接数据库、查询数据、执行事务等等。为了避免这些重复的代码,我们可以封装一个MySQL模块,使其可以在Express应用程序中重复使用。 以下是一个简单的MySQL封装模块示例: ```javascript const mysql = require('mysql'); const pool = mysql.createPool({ host: 'localhost', user: 'root', password: '', database: 'test' }); function query(sql, values) { return new Promise((resolve, reject) => { pool.getConnection((err, connection) => { if (err) { reject(err); } else { connection.query(sql, values, (err, rows) => { if (err) { reject(err); } else { resolve(rows); } connection.release(); }); } }); }); } module.exports = { query }; ``` 在这个例子中,我们使用了MySQL模块来创建一个连接池,并使用Promise封装了查询方法。这个方法接受一个SQL查询语句和值的数组作为参数,并返回一个Promise对象,该对象在查询完成后解析为查询结果或拒绝为错误。 我们可以将这个模块导入我们的Express应用程序,并在需要的地方调用查询方法。例如: ```javascript const express = require('express'); const mysql = require('./mysql'); const app = express(); app.get('/users', async (req, res, next) => { try { const users = await mysql.query('SELECT * FROM users'); res.json(users); } catch (err) { next(err); } }); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 在这个例子中,我们使用Express创建了一个简单的API端点,该端点从数据库中检索所有用户并将其作为JSON响应发送回客户端。我们使用了async/await语法来处理异步查询,并使用try/catch块来捕获任何错误并将其传递给Express的错误处理程序。 这只是一个简单的MySQL封装示例,你可以根据你的实际需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值