1. 程式人生 > >fetch封裝(增刪改查)

fetch封裝(增刪改查)

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script src="easyhttp.js"></script>
    <script src="app.js"></script>
</body>
</html>

封裝的js檔案內容(easyhttp.js)

/*
 * @Author: mikey.zhaopeng 
 * @Date: 2018-09-27 20:03:13 
 * @Last Modified by: mikey.zhaopeng
 * @Last Modified time: 2018-09-27 21:20:53
 */
class EasyHttp{
    get(url){
        return new Promise((resolve,reject)=>{
            fetch(url)
                .then( res => res.json())
                .then( data => resolve(data))
                .catch(err => reject(err))

        })
    }

    // post方式
    post(url,data){
        return new Promise((resolve,reject)=>{
            fetch(url,{
                method:'POST',
                headers:{
                    'Content-type':'application/json'
                },
                body:JSON.stringify(data)
            })
                .then( res => res.json())
                .then( data => resolve(data))
                .catch(err => reject(err))

        })
    }


    //put 修改
    put(url,data){
        return new Promise((resolve,reject)=>{
            fetch(url,{
                method:'PUT',
                headers:{
                    'Content-type':'application/json'
                },
                body:JSON.stringify(data)
            })
                .then( res => res.json())
                .then( data => resolve(data))
                .catch(err => reject(err))

        })
    }

    //delete
    delete(url,data){
        return new Promise((resolve,reject)=>{
            fetch(url,{
                method:'DELETE',
                headers:{
                    'Content-type':'application/json'
                },
                body:JSON.stringify(data)
            })
                .then( res => res.json())
                .then( data => resolve('資料刪除成功!'))
                .catch(err => reject(err))

        })
    }
}

 使用的js檔案內容:(app.js)

const http = new EasyHttp;
// get請求資料
http.get('http://jsonplaceholder.typicode.com/users')
    .then((data) =>{
        console.log(data)
    })
    .catch(err => console.log(err))

    // post傳輸資料
    const data = {
        name:'carrie',
        username:'渣渣芳',
        email:'
[email protected]
' }; //post user http.post('http://jsonplaceholder.typicode.com/users',data) .then(data => console.log(data)) .catch(err => console.log(err)) // update user ,修改後會發現修改後ID為2的資料會變成上頁面定義的data http.put('http://jsonplaceholder.typicode.com/users/2',data) .then(data => console.log(data)) .catch(err => console.log(err)) //delete user 刪除下標為2裡的資料 http.delete('http://jsonplaceholder.typicode.com/users/2',data) .then(data => console.log(data)) .catch(err => console.log(err))