时间:2021-07-01 10:21:17 帮助过:25人阅读
- ‘use strict‘<span style="color: #000000;">;
- const mysql </span>= require(‘mysql‘<span style="color: #000000;">);
- </span><span style="color: #0000ff;">var</span> local = <span style="color: #0000ff;">true</span>
- <span style="color: #0000ff;">var</span><span style="color: #000000;"> pool
- </span><span style="color: #008000;">//</span><span style="color: #008000;"> 创建连接池</span>
- <span style="color: #0000ff;">if</span><span style="color: #000000;"> (local) {
- pool </span>=<span style="color: #000000;"> mysql.createPool({
- connectionLimit: </span>50<span style="color: #000000;">,
- host: </span>‘localhost‘<span style="color: #000000;">,
- user: </span>‘root‘<span style="color: #000000;">,
- password: </span>‘root‘<span style="color: #000000;">,
- database: </span>‘crawl‘<span style="color: #000000;">,
- multipleStatements: </span><span style="color: #0000ff;">true</span> <span style="color: #008000;">//</span><span style="color: #008000;">是否允许执行多条sql语句</span>
- <span style="color: #000000;"> });
- }
- </span><span style="color: #008000;">//</span><span style="color: #008000;">将结果已对象数组返回</span>
- <span style="color: #0000ff;">var</span> row = (sql, ...params) =><span style="color: #000000;"> {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Promise(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (resolve, reject) {
- pool.getConnection(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, connection) {
- </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (err) {
- reject(err);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- connection.query(sql, params, </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (error, res) {
- connection.release();
- </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (error) {
- reject(error);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- resolve(res);
- });
- });
- });
- };
- </span><span style="color: #008000;">//</span><span style="color: #008000;">返回一个对象</span>
- <span style="color: #0000ff;">var</span> first = (sql, ...params) =><span style="color: #000000;"> {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Promise(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (resolve, reject) {
- pool.getConnection(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, connection) {
- </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (err) {
- reject(err);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- connection.query(sql, params, </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (error, res) {
- connection.release();
- </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (error) {
- reject(error);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- resolve(res[</span>0] || <span style="color: #0000ff;">null</span><span style="color: #000000;">);
- });
- });
- });
- };
- </span><span style="color: #008000;">//</span><span style="color: #008000;">返回单个查询结果</span>
- <span style="color: #0000ff;">var</span> single = (sql, ...params) =><span style="color: #000000;"> {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Promise(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (resolve, reject) {
- pool.getConnection(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, connection) {
- </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (err) {
- reject(err);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- connection.query(sql, params, </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (error, res) {
- connection.release();
- </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (error) {
- reject(error);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- </span><span style="color: #0000ff;">for</span> (let i <span style="color: #0000ff;">in</span> res[0<span style="color: #000000;">]) {
- resolve(res[</span>0][i] || <span style="color: #0000ff;">null</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- resolve(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);
- });
- });
- });
- }
- </span><span style="color: #008000;">//</span><span style="color: #008000;">执行代码,返回执行结果</span>
- <span style="color: #0000ff;">var</span> execute = (sql, ...params) =><span style="color: #000000;"> {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Promise(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (resolve, reject) {
- </span><span style="color: #008000;">//</span><span style="color: #008000;"> 获取连接</span>
- pool.getConnection(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, connection) {
- </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (err) {
- reject(err);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- </span><span style="color: #008000;">//</span><span style="color: #008000;"> 操作数据库</span>
- connection.query(sql, params, <span style="color: #0000ff;">function</span><span style="color: #000000;"> (error, res) {
- </span><span style="color: #008000;">//</span><span style="color: #008000;"> 释放</span>
- <span style="color: #000000;"> connection.release();
- </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (error) {
- reject(error);
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
- }
- resolve(res);
- });
- });
- });
- }
- </span><span style="color: #008000;">//</span><span style="color: #008000;">模块导出</span>
- module.exports =<span style="color: #000000;"> {
- ROW: row,
- FIRST: first,
- SINGLE: single,
- EXECUTE: execute
- }
- </span><span style="color: #008000;">/*</span><span style="color: #008000;">连接mysql</span><span style="color: #008000;">*/</span>
- <span style="color: #0000ff;">function</span><span style="color: #000000;"> connectToMysql() {
- </span><span style="color: #0000ff;">var</span> connection =<span style="color: #000000;"> mysql.createConnection({
- host: </span>‘‘<span style="color: #000000;">,
- user: </span>‘‘<span style="color: #000000;">,
- password: </span>‘‘<span style="color: #000000;">,
- database: </span>‘‘<span style="color: #000000;">
- });
- connection.connect();
- </span><span style="color: #008000;">//</span><span style="color: #008000;">查询</span>
- connection.query(‘SELECT * FROM user;‘, <span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, rows, fields) {
- </span><span style="color: #0000ff;">if</span> (err) <span style="color: #0000ff;">throw</span><span style="color: #000000;"> err;
- console.log(</span>‘The solution is: ‘, rows[0<span style="color: #000000;">]);
- });
- </span><span style="color: #008000;">//</span><span style="color: #008000;">关闭连接</span>
- <span style="color: #000000;"> connection.end();
- }</span>
node封装mysql模块
标签:导出 rom node UI nec null 实现 tip cat