一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第6天,点击查看活动详情。
前言
上一篇文章已经初始化好了项目,本文内容主要是介绍如何连接mysql数据库。
目录结构
创建数据库,创建数据表
安装 mysql2 用来连接mysql数据库
npm install mysql2
创建连接池
在app这个文件夹下创建database.js文件,专门用来连接数据库
const mysql = require("mysql2") // 引入依赖
const config = require('./config') // 引入配置变量
const connections = mysql.createPool({ // 创建连接池
host: config.MYSQL_HOST, // 主机地址
port: config.MYSQL_PORT, // 数据库端口号
database: config.MYSQL_DATABASE, // 数据库名
user: config.MYSQL_USER, // mysql数据库等登录名
password: config.MYSQL_PASSWORD //密码
})
connections.getConnection((err, conn) => {
conn.connect((err) => {
if (err) {
console.log("连接失败:", err)
} else {
console.log("数据库连接成功!")
}
})
})
module.exports = connections.promise()
连接数据库的配置不应该写死,所以这里用环境变量
// .env文件
MYSQL_HOST = localhost
MYSQL_PORT = 3306
MYSQL_DATABASE = blog
MYSQL_USER = root
MYSQL_PASSWORD = 123456
处理接口逻辑
首先,接口是post请求,请求用json数据
userRouter.post('/', create)
请求过来会进到create中间件
controller/user.controller.js
const userService = require('../service/user.service')
class UserController {
async create (ctx, next) {
// 获取用户请求的数据
const user = ctx.request.body
console.log(user)
try {
// 查询数据
const result = await userService.create(user)
// 返回数据
ctx.body = result
} catch (error) {
ctx.body = "数据库错误"
console.log(error)
}
}
}
module.exports = new UserController()
上面的代码是有问题的,因为他解释不出JSON数据,现在的user是undefined 这里我用koa-bodyparser来解析json数据 npm install koa-bodyparser
安装完成后,在入口文件app/index.js下使用
const Koa = require("koa")
const bodyParser = require('koa-bodyparser') // 用于解析json数据
const app = new Koa()
app.use(bodyParser()) // 这段代码要在路由之前
const useRoutes = require('../router')
useRoutes(app)
module.exports = app
service/user.service.js
const connection = require('../app/database')
class UserService {
async create (user) {
console.log("service")
// 将用户数据保存到数据库中
const { name, password } = user
console.log(name, password)
const statement = `INSERT INTO users (name, password) VALUES (?,?);`
const result = await connection.execute(statement, [name, password])
return result
}
}
module.exports = new UserService()
现在就可以测试接口了
成功了!!!
写在最后
至此,文章就分享完毕了,欢迎在评论区交流。
如果文章对你有所帮助,不要忘了点上宝贵的一赞!
听说点赞的人运气都不差,相信来年第一个升职加薪的一定是你~