首先是配置好环境
npm install mysql
然后在db文件夹下新建js文件
// js
// 1. 导入 mysql 模块
const mysql = require('mysql')
// 2. 建立与 MySQL 数据库的连接关系
const db = mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
port: 3306,
database: 'blog_mysql'
})
module.exports = db
注意node mysql如果没有特别设置连接的时候会报错
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
所以先在cmd中进行如下操作
mysql -u root -p
// 这里输自己的数据库名
use blog_mysql;
// 注意结尾的分号不要忘了
ALTER user'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你数据库的密码';
然后就完成了
接着对mysql的query语句用promise封装,防止回调地狱
// 1. 导入 mysql 模块
const mysql = require('mysql')
// 2. 建立与 MySQL 数据库的连接关系
const db = mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
port: 3306,
database: 'blog_mysql'
})
function query(sql, params) {
return new Promise((resolve, reject) => {
db.query(sql, params, (err, rows) => {
resolve({err, rows})
})
})
}
module.exports = query
接着就可以在路由中用async和await接收结果了
router.get('/test',async (req, res) => {
const sql = 'select * from admin'
const result = await query(sql,[])
res.send({
result
})
})