Fork me on GitHub

koa学习-数据库mysql

模块介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const mysql = require('mysql');
// 数据库的配置信息
const connection = mysql.createConnection({
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'sql'
});
// 连接数据库
connection.connect();
// 进行数据库操作
connection.query('SELECT * FROM apps', (err, result) => {
if (err) throw err;
console.log(result);
});
// 关闭连接
connection.end();

创建数据连接池

一般情况下操作数据库是很复杂的读写过程,不只是一个会话,如果直接用会话操作,就需要每次会话都要配置连接参数。
所以这时候就需要连接池管理会话。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const mysql = require('mysql');
const pool = mysql.createPool({
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'sql'
});

// 在数据池中进行会话操作
pool.getConnection((err, connection) => {
connection.query('SELECT * FROM apps', (err, result) => {
console.log(result);
// 连接完成,连接将返回连接池
connection.release();
if (err) throw err;
})
});

使用promise和async-await来封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// promise.js
const mysql = require('mysql');
const pool = mysql.createPool({
host : '127.0.0.1',
user : 'root',
password : 'root',
database : 'sql'
});

let query = function (sql) {
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
if (err) {
reject(err);
} else {
connection.query(sql, (err, rows) => {
if (err) {
reject(err)
} else {
resolve(rows);
}
connection.release();
});
}

});
});
}

module.exports = query;

// async.js
const query = require('./promise');

async function getData (sql) {
let dataList = await query(sql);
console.log(dataList);
}

getData('SELECT * FROM sql');

建表初始化

+----------+  遍历sql  +---+ 解析所有sql +---+  执行sql  +------------>
       |   |  目录下的  |   |  文件脚本  |   |   脚本     |   |
+----------+  sql文件   +---+   内容    +---+           +------------>

[详细代码见]()

参考文档:
koa-note
cookies

-------------本文结束感谢您的阅读,如果本文对你有帮助就记得给个star-------------
Donate comment here