Node学习(八)02-Node中的模块化——用module.exports实现模块化-封装并导出db.js模块之mysql增删改查& 步骤之连服务器、键值照应、封装导出模块、导入模块并打印服务器数据

Node学习(八)02-Node中的模块化——用module.exports实现模块化-封装并导出db.js模块之mysql增删改查& 步骤之连服务器、键值照应、封装导出模块、导入模块并打印服务器数据

10.4 封装 db.js 模块

核心思想: mysql操作流程是固定的,尤其是前三步。将前三部封装到一个模块,导出链接对象。 链接对象就可以调用query方法执行sql语句,也能执行end方法关闭链接

封装一个db.js。

作用就是连接到MySQL服务器,并完成查询工作,最后还要关闭连接。

/   封装 mysql的增删改查。封装之后要导出

module.exports = (sql, values, cb) => {
    
    
    const mysql = require('mysql'); // 导入mysql模块
    const conn = mysql.createConnection({
    
    
        host: 'localhost',
        port: 3306,
        user: 'root',
        password: '',
        database: 'yingxiong',
        multipleStatements: true
    });
    conn.connect();
    conn.query(sql, values, cb);
    conn.end();
}

上面封装的代码中,导出了一个函数。所以导入它的文件,也会得到一个函数。

test.js 测试:

// 测试使用db.js
// 导入模块
const db = require('./db.js');

db('select * from heroes limit 2', null, (err, result) => {
    
    
    if (err) throw err;
    console.log(result);
});

实例

第四组-应用版

准备参数1-连接服务器

在这里插入图片描述

准备参数2-键值对照应

在这里插入图片描述

db.js-第一版

/   封装 mysql的增删改查。封装之后要导出

// 写法一:普通函数
function abcd(sql, values, cb) {
    
    
    const mysql = require('mysql'); // 导入mysql模块
    const conn = mysql.createConnection({
    
    
        host: 'localhost',
        port: 3306,
        user: 'root',
        password: '',
        database: 'yingxiong',
        multipleStatements: true
    });
    conn.connect();
    conn.query(sql, values, cb);
    conn.end();
}

module.exports = abcd;

db.js-第二版-应用版

/   封装 mysql的增删改查。封装之后要导出

// 应用版 写法二:箭头函数  导出模块
module.exports = (sql, values, cb) => {
    
    
    const mysql = require('mysql'); // 导入mysql模块
    const conn = mysql.createConnection({
    
    
        host: 'localhost',
        port: 3306,
        user: 'root',
        password: '',
        database: 'yingxiong',
        multipleStatements: true
    });
    conn.connect();
    conn.query(sql, values, cb);
    conn.end();
}

test.js

// 测试使用db.js
// 导入模块
const db = require('./db.js');

db('select * from heroes limit 2', null, (err, result) => {
    
    
    if (err) throw err;
    console.log(result);
});

效果4-test引入db

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44867717/article/details/128928585