• 示例:用demo演示,不考试使用
  • 封装:将起封装为系统可用的工具
  • 使用:让API直接操作数据库,不在使用假数据
const mysql = require('mysql')

// 创建链接对象
const con = mysql.createConnection({
	host: '127.0.0.1',
	port: 12345,
	user: 'root',
	password: '123456',
	database: 'myblog',
})
// 开始链接
con.connect()

// 执行sql语句
// const sql = 'select * from users'
// const sql = 'select id, username from users'
// const sql = `update users set realname='李四' where username='lisi';`

const sql = `insert into blogs (title, content, createtime, author) values('标题C', '内容C', 1677758988281, 'zhangsan');`
con.query(sql, (err, result) => {
	if (err) {
		console.error(err)
		return
	}
	console.log(result)
})

con.end()

# nodejs 链接 mysql 做成工具

// src/config/db.js
const env = process.env.NODE_ENV // 环境变量

// 配置
let MYSQL_CONFIG

if (env === 'dev') {
	MYSQL_CONFIG = {
		host: '127.0.0.1',
		port: 12345,
		user: 'root',
		password: '123456',
		database: 'myblog',
	}
}
if (env === 'production') {
	MYSQL_CONFIG = {
		host: '127.0.0.1',
		port: 12345,
		user: 'root',
		password: '123456',
		database: 'myblog',
	}
}
modele.exports = {
	MYSQL_CONFIG,
}


// src/db/mysql.js
const mysql = require('mysql')
const { MYSQL_CONFIG } = require('../config')

// 创建链接对象
const con = mysql.createConnection(MYSQL_CONFIG)

// 开始链接
con.connect()

// 统一执行 sq l的函数
function exec(sql) {
	return new Promise((resolve, reject) => {
		con.query(sql, (err, result) => {
			if (err) {
				reject(err)
				return
			}
			resolve(result)
		})
	})
}

module.exports = {
	exec,
}