koa2 get post api restful前端聯調

一、gitgit

https://github.com/MengFangui/koa2-restful-apigithub

二、示例代碼api

//引入 Koa 服務器
const koa = require('koa'); const app = new koa(); // 路由配置
const router = require('koa-router')(); // 解決post方法獲取參數問題
const bodyParser = require('koa-bodyparser'); // 配置中間件
app.use(bodyParser()); // 解決跨域問題
app.use(async (ctx, next) => { ctx.set('Access-Control-Allow-Origin', '*'); ctx.set('Access-Control-Allow-Headers', '*'); ctx.set('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); ctx.set('Cache-Control', 'no-cache'); await next(); }) // router.routes做用:啓動路由 // allowedMethods做用:當全部路由中間件執行完成以後,若ctx.status爲空或者404的時候,豐富response對象的header頭.
app.use(router.routes()).use(router.allowedMethods()) // get請求示例
router.get('/test', async (ctx) => { // 獲取請求
    // console.log(ctx.request); 

    // 獲取的是請求參數 
    // console.log(ctx.query); //{ aid: '123' } 用的最多的方式 推薦
    // console.log(ctx.request.query); // 也能夠
    // console.log(ctx.querystring); //aid=123&name=zhangsan // 獲取的是一個字符串 
    // 獲取url地址
    // console.log(ctx.url); // 能夠
    // console.log(ctx.request.url); //能夠

    // 響應體
    ctx.body = { code: 200, status: 1, message: 'success', data: ctx.query }; }); //動態路由:在路由裏面加入: /:參數 // http://localhost:3000/test-dynamic-routing/888
router.get('/test-dynamic-routing/:aid', async (ctx, next) => { // 獲取動態路由參數 
    console.log(ctx.params) // {aid:888}
    ctx.body = { code: 200, status: 1, message: 'success', data: ctx.params }; }) router.post('/testPost', async (ctx) => { // 請求參數
    let data = ctx.request.body ctx.body = { code: 200, status: 1, message: 'success', data }; }); //監聽端口
app.listen(3000, function () { console.log('start in 3000 port ...') });
相關文章
相關標籤/搜索