1.Node.js 操作 Mysql(Demo)
2.在项目中实现Mysql 连接
1.Node.js 操作 Mysql(Demo)
- 示例:用demo 演示,不考虑使用
- 封装: 将其封装为系统可用的工具
- 使用: 让API直接操作数据库,不再使用假数据
npm i mysql
index.js
const mysql = require('mysql')
// 创建连接对象
const con = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
port: '3306',
database: 'myblog'
})
// 开始连接
con.connect()
// 执行 sql 语句
const sql = 'select * from users;'
con.query(sql, (err, result) => {
if (err) {
console.log(err)
return
}
console.log(result)
})
// 关闭连接
con.end()
控制台输出
[nodemon] starting `node index.js`
[ RowDataPacket { id: 1, username: 'zhangsan', password: '123', realname: '张三' },
RowDataPacket { id: 2, username: 'lisi', password: '123', realname: '李四2' } ]
[nodemon] clean exit - waiting for changes before restart
2.在项目中实现Mysql 连接
文件目录 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201009224115207.png#pic_center)conf/db.js
const env = process.env.NODE_ENV //环境变量(package.json中已定义)
// 配置
let MYSQL_CONF
if (env === 'dev') {
MYSQL_CONF = {
host: 'localhost',
user: 'root',
password: '123456',
port: '3306',
database: 'myblog'
}
}
// 线上环境配置
if (env === 'production') {
MYSQL_CONF = {
host: 'localhost',
user: 'root',
password: '123456',
port: '3306',
database: 'myblog'
}
}
module.exports = {
MYSQL_CONF
}
- 通过获取package.json中配置的环境变量区分开发还是生产环境
- 把配置文件导出
db/mysql.js
const mysql = require('mysql')
const { MYSQL_CONF} = require('../conf/db')
// 创建连接对象
const con = mysql.createConnection(MYSQL_CONF)
// 开始连接
con.connect()
// 统一执行 sql 的函数
function exec(sql) {
const promise = new Promise((resolve, reject) => {
con.query(sql, (err, result) => {
if (err) {
reject(err)
return
}
resolve(result)
})
})
return promise
}
module.exports = {
exec
}
- 以conf/db.js中MYSQL_CONF作为参数创建连接对象
- 新建统一执行sql函数,通过promise包裹con.query实现。