这两天用koa写了点服务,这里面和express还是有部分区别的
1.静态服务: koa 中,是有中间件, koa-static,
const static_f = require('koa-static')
const app = new Koa(); app.use(static_f('webroot')) //和express一样写入文件路径就行
2 koa实例,不能像express直接get方法写路由,如
//express:
app.get('/', function(req,res,next){}) //koa
app(function(ctx, next){})
//koa 里面应该是只能放入函数
3 koa, 路由
router.get('/codeList', async function(ctx, next) { let data = await sm_model.find() //sm_model是mongoose.model ctx.body = {
msg: '查询成功',
code: '0000',
data: data
}
}) //这里面应该是不能用异步回调(尝试过但并没有返回数据),如果有异步,就要用async await 来解决
4,请求参数获取,以及接口返回
get请求获取,参数
ctx.query 相当于express 的req.body 接口返回
ctx.body 直接赋值即可
5.post请求,获取参数
const bodyParser = require('koa-bodyparser') // 使用ctx.body解析中间件
app.use(bodyParser()) router.post('/codeList', async function (ctx, next) {
let postData = ctx.request.body
console.log(postData)
})