美文网首页
JavaScript 可变参数函数

JavaScript 可变参数函数

作者: 2359634711 | 来源:发表于2019-05-04 15:36 被阅读0次

JavaScript 可变参数函数使用技巧

0x01前言

在对node mysql 进行封装的时候,我发现query方法是一个可变参数函数。想要对query函数进行封装,就需要使用JavaScript可变参数函数的定义技巧。
这是mysql库中query的使用方式

connection.query(addSql,addSqlParams,function (err, result){
        //回调函数
})

其中,第二个参数也就是sql语句中的动态变量数组是可以省略的。

connection.query(addSql,function (err, result){
        //回调函数
})

0x02 封装

封装的目的

在使用mysql时,我发现在没有请求一定时间以后,mysql服务器会自动断开连接并抛出错误。为了解决这个问题,我将封装query函数,在每一次请求mysql的同时进行mysql的连接和断开操作。经过测试可以有效的避免连接断开的问题。

封装方法

在mysql请求js文件的同级目录创建mysqlPool.js文件,代码如下

const mysql = require('mysql');
const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'jin7422373',
    port: '3306',
    database: 'wxdy'
})

const query = function(sql, callback) {
    pool.getConnection(function(err, conn) {
        if(err){
            callback(err, null, null);
        }else{
            conn.query(sql, function(err, res, fields) {
                callback(err, res, fields)
            })
            conn.release();
        }
    })
}


module.exports = query;

其中抛出query函数以供外界调用。为了符合query的可变参数格式。对query函数参数进行修改:

const mysql = require('mysql');
const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'jin7422373',
    port: '3306',
    database: 'wxdy'
})

const query = function() {
    let sql, params, callback;
    sql = arguments[0]
    switch (arguments.length){
        case 2: {
            callback = arguments[1];
            params = null;
            break;
        }
        case 3: {
            callback = arguments[2];
            params = arguments[1];
            break;
        }
        default: {

            break;
        }
    }
    pool.getConnection(function(err, conn) {
        if(err){
            callback(err, null, null);
        }else{
            conn.query(sql, params, function(err, res, fields) {
                callback(err, res, fields)
            })
            conn.release();
        }
    })
}


module.exports = query;

相关文章

  • 【前端案例】23 - JavaScript中函数的可变参数 +

    (一) JavaScript中函数的可变参数 (二)for ... in ... for ... in ... 遍...

  • JavaScript 可变参数函数

    JavaScript 可变参数函数使用技巧 0x01前言 在对node mysql 进行封装的时候,我发现quer...

  • 12. 可变参数函数

    12. 可变参数函数 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法 如果函数最后一个参数被记作...

  • ★10.关于可变参数模板

    可变参数函数模板 可变参数类模板 可变参数函数模板的使用 转发参数包

  • Go语言可变参数

    可变参数 参数数量可变的函数称为可变参数函数 在声明可变参数函数时,需要在参数列表的最后一个参数类型之前加上省略符...

  • Go基础语法(四)

    可变参数函数 可变参数函数是一种参数个数可变的函数。 如果函数最后一个参数被记作 ...T ,这时函数可以接受任意...

  • Lua可变参数

    Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用...表示函数有可变的参数。 把可变参数...

  • Python 函数

    调用函数 定义函数 函数的参数必选参数、默认参数、可变参数、关键字参数、命名关键字参数 位置参数 默认参数 可变参...

  • Golang 系列教程 第 12 部分,可变参数函数

    欢迎来到 Golang 系列教程 第 12 部分 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法...

  • Go教程第九篇:可变参数函数

    可变参数函数 欢迎来到《Golang系列教程》的第九篇文章---可变参数函数。 什么是可变参数函数 ? 通常情况下...

网友评论

      本文标题:JavaScript 可变参数函数

      本文链接:https://www.haomeiwen.com/subject/gowxoqtx.html