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"}