使用 koa 的 mysql 模块可以方便地连接 mysql 并进行 crud 操作.
npm 安装 mysql 模块
npm i mysql -S
使用-S 来把包信息写到 package.json 中.
使用
1 | const mysql = require("mysql"); |
1 | //使用 promise封装查询函数 |
1 |
|
extra
封装查询结果
定义 const [err,data]
来 分别接收 promise.reject()
的 err
和 project.resolve()
的data
.
1 |
|
js 生成 sql 语句
自己一点一点拼接 sql 语句很麻烦,这里我用了https://github.com/wangweianger/mysqls/blob/6a1e7590a5c45f5d5600a6964a1bc474fc2972f3/docs/curd/update.md,来自动生成 sql 语句.
安装
npm install mysqls --save
使用
详细的使用方法可以看下这个轮子的作者写的文档,十分详细.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25const genSql = require("node-transform-mysql");
updateUser: async (ctx, jwt) => {
let userId = ctx.request.body.id;
let sqlQuery = {};
if (ctx.request.body.status) {
sqlQuery.status = ctx.request.body.status;
}
if (ctx.request.body.nickName) {
sqlQuery.nick_name = ctx.request.body.nickName;
}
if (ctx.request.body.adminType) {
sqlQuery.admin_type = ctx.request.body.adminType;
}
let sql = genSql
.table("user")
.data(sqlQuery)
.where({ id: userId })
.update();
const [err, data] = await util.awaitWrap(query(sql));
if (err) {
return { data: err.err.code, status: false };
}
return { data: data.message, status: true };
};