這兩天用koa寫了點服務,這裏面和express仍是有部分區別的web
1.靜態服務: koa 中,是有中間件, koa-static, express
const static_f = require('koa-static') const app = new Koa(); app.use(static_f('webroot')) //和express同樣寫入文件路徑就行
2 koa實例,不能像express直接get方法寫路由,如app
//express: app.get('/', function(req,res,next){}) //koa app(function(ctx, next){}) //koa 裏面應該是隻能放入函數
3 koa, 路由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請求,獲取參數async
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) })