Skip to content
索引

hello-koa

sh
npm i -s koa
npm i -s koa
js
const koa = require('koa')
const app = new koa()

app.use((ctx) => {
  	ctx.body = 'hello koa'
})

app.listen(3000, () => {
	console.log('start ok')
})
const koa = require('koa')
const app = new koa()

app.use((ctx) => {
  	ctx.body = 'hello koa'
})

app.listen(3000, () => {
	console.log('start ok')
})

常用依赖

  • koa-router 路由
  • koa-body 协议分析,作为Koa的中间件,对文件上传和PSOT JSON,设置josn的大小和文件上传的大小,都比较友好
  • koa-cors
sh
npm i -s koa koa-router koa-body @koa/cors koa-json
npm i -s koa koa-router koa-body @koa/cors koa-json

示例

js
/**
 * koa作为node服务的解决方案,
 * 路由 koa-router
 * 协议分析 koa-body koa-body作为Koa的中间件,对文件上传和PSOT JSON,设置josn的大小和文件上传的大小,都比较友好,
 * 跨域 koa-cors
 * 使用中间件要用app.use()这个方法 中间件的加载要有顺序的 所以koaBody放在cors前面
 * 路由的前缀
 * 获取路由请求参数params
 * json pretty json进行格式化换行之类的 字符串转化成json格式 常见的方法 日志 处理
 * */

const Koa = require("koa")
const Router = require("koa-router")
const cors = require("@koa/cors")
const koaBody = require("koa-body")
const json = require("koa-json")
const app = new Koa()
const router = new Router()
router.prefix("/ac/v1")

router.get("/", function (ctx) {
  console.log(ctx)
  ctx.body = "hello world"
})
router.get("/api", function (ctx) {
  //get params = ctx.request.query
  const params = ctx.request.query
  console.log(params)
  console.log(params)
  console.log(ctx)
  ctx.body = "hello routerApi"
})
router.post("/post", async ctx => {
  let { body } = ctx.request // es6的写法把ctx.request请求体的所有方法都放到body对象里面去
  console.log(body)
  console.log(ctx.request)
  let aa = {}
  aa.status = ""
  aa.name = "cx2"
  ctx.body = aa
})

app.use(koaBody())
app.use(cors())
app.use(json({ pretty: false, param: "pretty" }))
app.use(router.routes()).use(router.allowedMethods()) //把前面所有定义的方法添加到app应用上去

app.listen(3002)
/**
 * koa作为node服务的解决方案,
 * 路由 koa-router
 * 协议分析 koa-body koa-body作为Koa的中间件,对文件上传和PSOT JSON,设置josn的大小和文件上传的大小,都比较友好,
 * 跨域 koa-cors
 * 使用中间件要用app.use()这个方法 中间件的加载要有顺序的 所以koaBody放在cors前面
 * 路由的前缀
 * 获取路由请求参数params
 * json pretty json进行格式化换行之类的 字符串转化成json格式 常见的方法 日志 处理
 * */

const Koa = require("koa")
const Router = require("koa-router")
const cors = require("@koa/cors")
const koaBody = require("koa-body")
const json = require("koa-json")
const app = new Koa()
const router = new Router()
router.prefix("/ac/v1")

router.get("/", function (ctx) {
  console.log(ctx)
  ctx.body = "hello world"
})
router.get("/api", function (ctx) {
  //get params = ctx.request.query
  const params = ctx.request.query
  console.log(params)
  console.log(params)
  console.log(ctx)
  ctx.body = "hello routerApi"
})
router.post("/post", async ctx => {
  let { body } = ctx.request // es6的写法把ctx.request请求体的所有方法都放到body对象里面去
  console.log(body)
  console.log(ctx.request)
  let aa = {}
  aa.status = ""
  aa.name = "cx2"
  ctx.body = aa
})

app.use(koaBody())
app.use(cors())
app.use(json({ pretty: false, param: "pretty" }))
app.use(router.routes()).use(router.allowedMethods()) //把前面所有定义的方法添加到app应用上去

app.listen(3002)

获取不同请求方式参数

ctx.query

示例:请求地址localhost:4000/users?q=1

ctx.params

获取router params 示例:路由localhost:4000/users/:id 请求地址localhost:4000/users/1

ctx.request.body

请求体body 地址localhost:4000/users,content-type为application/json,参数{"name": "zj"}

Released under the MIT License.