博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  8 随笔 :: 0 文章 :: 0 评论 :: 1365 阅读

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}`)
    
    
posted on   比邻若天涯  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示