Koajs入门
介绍
Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。
官网: https://koa.bootcss.com/#application
应用
安装
npm i koa
yarn add koa
基本使用
/src/index.js
const Koa = require('koa')
const app = new Koa()
const port = 3000
/**app.use(中间件应用)...**/
app.listen(port)
console.log(`服务已开启,端口:${port}`)
目录结构
root
├── package-lock.json
├── package.json
├── src
│ ├── api ## 数据处理业务逻辑
│ │ ├── moduleA.js
│ │ └── user.js
│ ├── index.js ## 主入口
│ ├── public ## 静态文件
│ │ └── bg.jpg
│ ├── routers ## 路由定义处理
│ │ ├── index.js
│ │ ├── moduleARouter.js
│ │ └── userRouter.js
│ └── utils ## 通用工具函数
│ └── result.js
常用中间件
@koa/router
路由:分发路由,根据不同路由来处理不同的数据信息
- 安装
npm i @koa/router
- 使用
/src/routers/moduleA.js
const Router = require('@koa/router')
const router = new Router()
// 添加路由前缀
router.prefix('/api')
const moduleA = require('../api/moduleA')
router.get('/a1', moduleA.a1)
module.exports = router;
koa-combine-routers
路由合并:将所有路由整合在一起,使 koa 只需要应用一次路由中间件
- 安装
npm install koa-combine-routers
- 使用
const combineRouters = require('koa-combine-routers')
const moduleARouter = require('./moduleARouter')
const userRouter = require('./userRouter')
// 整合所有的路由
const routers = combineRouters(moduleARouter, userRouter)
module.exports = routers
koa-body
body参数解析中间件
-
安装
npm install koa-body -
使用
const Koa = require('koa'); const koaBody = require('koa-body'); const app = new Koa(); app.use(koaBody()); app.use(ctx => { ctx.body = `Request Body: ${JSON.stringify(ctx.request.body)}`; }); app.listen(3000);
@koa/cors
跨域处理中间件
-
安装
npm install @koa/cors --save -
使用
const Koa = require('koa'); const cors = require('@koa/cors'); const app = new Koa(); app.use(cors());
koa-static
文件服务中间件
-
安装
npm install koa-static -
使用
// 文件服务 const path = require('path') const staticServe = require('koa-static') app.use(staticServe(path.join(__dirname, './public')))
koa-compose
中间件整合
-
安装
npm i koa-compose -
使用
/src/index.js
const Koa = require('koa') // body 参数解析 const koaBody = require('koa-body') // 跨域处理 const cors = require('@koa/cors') // 文件服务 const path = require('path') const staticServe = require('koa-static') // 路由 const routers = require('./routers') // 整合中间件koa-compose const compose = require('koa-compose') const app = new Koa() const port = 3000 // 整合中间件 const middleware = compose([ cors(), koaBody(), routers(), staticServe(path.join(__dirname, './public')), ]) app.use(middleware) app.listen(port) console.log(`服务已开启,端口:${port}`)
浙公网安备 33010602011771号