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