1. koa入门笔记汇总
  • 项目创建
  • 常用中间件处理请求方式
  • 路由进阶
  • 项目中各依赖包版本管理
  • 其他中间件

项目创建

执行以下命令安装依赖和创建jkoa项目

npm init -y 
npm install -S koa
npm install -S koa-router

编写第一个hello world

const koa = require("koa")
const koaRouter = require("koa-router")
const app = new koa()
const router = new koaRouter()
router.get("/api", async (ctx)=>{
   ctx.body = "hello api"
})
router.get("/index", async (ctx)=>{
   ctx.body = "hello index"
}
app.use(router.routes())
app.use(router.allowedMethods())
app.listen(3000)

常用中间件处理请求方式和跨域问题

安装依赖

npm install -S koa-body @koa/cors
  • koa-body : 协议解析器 (具体自定义配合参数,查看NPM官方文档)
  • @koa/cors :用于解决跨域问题 (具体自定义配合参数,查看NPM官方文档)

使用

...
const koaBody = require("koa-body")
const cors = require("@koa/cors")
...

app.use(koaBody())
app.use(cors())
...

路由进阶

项目模块化区分

项目目录
-src
-api // 用于存放业务的回调函数
-router // 用来存放路由的相关文件
-index.js // koa的整合文件.相当于vue中main.js
-package-lock.json
-package.json

路由压缩

安装

npm install koa-combine-routers -S

使用

在 src/api 下面创建创建 demo.js 用于存放业务的逻辑代码

class demoCombint {
   constructor(){}
  const demo = (ctx)=>{
       ctx.body = "this is demo"
  }
}
module.exports = new demoCombint()

在 src / router 下面创建 demoRouter.js 用于存储关于demo模块的路由模块

const koaRouter = require("koa-router")
const demo = require("../api/demoRouter")
const router = new KoaRouter()
router.get("/demo",demo)
module.exports = router

在 src / router 下面创建 routes.js 用于整合路由模块化

const Router = require('koa-router')
const combineRouters = require('koa-combine-routers')
const demoRouter = require("./demoRouter")
const router = combineRouters(demoRouter)
module.exports = router

最后在 src / index 项目下构建整体的项目

const Koa = require("koa")
const app = new Koa()
const router = require("./router/routes")
app.use(router())
app.listen(3000)

实现热加载

npm i nodemon -S

在 package.json 中配置

"script":{
   "start":"npx nodemon src/index.js"
}

项目中各依赖包版本管理

npm i npm-check-updates -g
ncu // 检查项目依赖是否更新
ncu -u // 更新依赖项版本,只是在package.json中更改,需要重新 install

其他中间件

用于解决koa安全问题

npm install koa-helmet -S
...
const helmet = require("koa-helmet")
app.use(helmet())
...

用于静态资源访问

npm i koa-static -S
...
const static = require("koa-static")
const path = require("path")
...
app.use(static(path.join(__dirname,"../public")))
...

整合 koa 中间件依赖

npm i koa-compase -S

用法详见 npm 官方文档

压缩中间件

npm i koa-compress -S

用法详见 npm 官方文档

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇