👨 作者简介:大家好,我是Taro,前端领域创作者
✒️ 个人主页:唐璜Taro
🚀 支持我:点赞👍+📝 评论 + ⭐️收藏
前言
随着node的不断发展,koa这门技术也越来越重要,很多人都开启了学习koa,本文就介绍了koa的分层结构。
一、用户注册接口
新建 router
目录,在 user.router.js
引入 koa-router
const Router = require('koa-router')
const userRouter = new Router({ prefix:'/users' })
// post请求
userRouter.post('/', create)
module.exoprt = userRouter
引入 userRouter
,在 app
目录下的 index.js 中注册接口
const Koa = require('koa')
const bodyParser = require('koa-bodyparser')
const userRouter = require('../router/user.router')
const app = new Koa()
app.use(bodyParser())
app.use(userRouter.routes())
app.use(userRouter.allowedMethods())
module.exports = app
二、路由触发
1. 前端接口请求
(请求示例):
baseURl/users
当使用的如上接口进行注册时,当执行到 userRouter.post('/', create)
时,会进入create方法中去
2.读入数据
// 注册接口 (user.router.js)
const Router = require('koa-router')
const { create } = require('../controller/user.controller')
const userRouter = new Router({ prefix: '/users' })
userRouter.post('/', create)
module.exports = userRouter
3. 创建 controller
新建 controller
目录,在 user.controller.js
const service = require('../service/user.service')
class UserController {
async create(ctx, next) {
const user = ctx.request.body
const result = await service.create(user)
ctx.body = result
}
}
module.exports = new UserController()
4. 写入数据库
新建 service
目录,在 user.service.js
中,进行连接数据库 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,
password: config.MYSQL_PASSWORD,
})
// 连接测试
connections.getConnection((err, conn) => {
conn.connect((err) => {
if (err) {
console.log('链接失败')
} else {
console.log('数据库链接成功')
}
})
})
module.exports = connections.promise()
const connections = require('../app/database')
class UserService {
async create(user) {
const { name, password } = user
const statement = `INSERT INTO user (userName,password) VALUES (?,?)`
const result = await connections.execute(statement, [name, password])
return result[0]
}
}
module.exports = new UserService()
总结
以上就是今天要讲的内容,本文仅仅简单介绍了koa在真实项目中的结构分层,以及各层之间处理的事务关联逻辑