Skip to content

1. 安装mysql

npm i mysql

2. 封装mysql

封装完成后直接调用即可

js
'use strict';

const mysql = require('docs/js/node/mysql');

const pool = mysql.createPool({
    host: '127.0.0.1',
    user: 'root',
    password: 'root',
    database: 'demo'
});

/**
 * [query description]
 * @return {[type]} [description]
 */
// 如果用户传递了两个参数,那么第一个就是 SQL 操作字符串, 第二个就是回调函数
// 如果是三个参数:第一个SQL字符串,第二个数组,第三个参数回调函数
exports.query = function () {
    let args = arguments;

    let sqlStr = args[0];
    let params = [];
    let callback;

    if (args.length === 2 && typeof args[1] === 'function') {
        callback = args[1];
    } else if (args.length === 3 && Array.isArray(args[1]) && typeof args[2] === 'function') {
        params = args[1];
        callback = args[2];
    } else {
        throw new Error('参数个数不匹配');
    }

    pool.getConnection(function (err, connection) {
        if (err) {
            callback(err);
        }
        connection.query(sqlStr, params, function (err, rows) {
            if (err) {
                callback(err);
            }
            connection.release();
            callback.apply(null, arguments);
        });
    });
};

3.使用

js
var selectSql = 'insert into cart (id,userId,productId,num,size,isDelete)  values (null,?,?,?,?,1)';
  db.query(selectSql, [cart.userId, cart.productId, cart.num, cart.size], function (err, result) {
    if (err) {
      return callback(err);
    }
    callback(err, result);
  });