1. 程式人生 > 實用技巧 >Node+Koa+koa-router 實現一個RESTful風格的增刪改查

Node+Koa+koa-router 實現一個RESTful風格的增刪改查

var Koa = require('koa');
var Router = require('koa-router');
//koa-body 獲取post穿過來的資料
var koaBody = require('koa-body');



var app = new Koa();
var router = new Router()
app.use(koaBody());
var Users = [
    {
        id: 1,
        name: '小紅',
        age: '12'
    },
    {
        id: 2,
        name: '小明',
        age: '23'
    }
]
//get users/:id 查詢資料
router.get('/users/:id', (ctx) => {
    // params 獲取get方式的值
    let { id } = ctx.params;
    ctx.body = Users.find(u => u.id = id);
});

//post 建立資料 user/:id 建立
router.post('/users/', (ctx) => {
    //獲取post傳過來的資料
    let { name, age } = ctx.request.body;

    Users.push(
        {
            id: Users.length + 1,
            name, age

        }
    )
    ctx.body = Users;
})

//更新 //user/:id
router.put('/users/:id', (ctx) => {
    let { id } = ctx.params;
    let { name, age } = ctx.request.body;
    let user = Users.find(data => data.id == id);
    if (user) {
        user.name = name;
        user.age = age;
    }
    ctx.body=Users;
})

// delete或del簡寫 刪除資料
router.delete('/users/:id',(ctx)=>{
    console.log(ctx.params.id)
    console.log(ctx.request.body.id)
     ctx.body=Users.filter(i=>i.id!=ctx.params.id);
})


app.use(router.routes())
app.listen(1001)