Node.js發送HTTP請求

在Node.js中發送HTTP請求,用的比較多的是request組件,該組件的功能非常強大,但是該組件需要通過回調函數的方式獲取操作的結果。

由於現在Node.js對ES6已經支持的比較好了,我們更希望request的結果能夠返回request對象,這樣能夠更加方便我們在獲取結果之後的操作。

我們可以使用ES6原生的Promise對象對request組件進行封裝使用


function request_promise(url) {
    return new Promise((resolve,reject)=>{
       request(url,(error, response, body)=>{
          if(error){
              reject(error);
          }else{
              resolve(body);
          }
       });
    });
}

request_promise('http://127.0.0.1?id=23&name=koastal')
.then((body)=>{
    console.log(body);
})
.catch((err)=>{
    console.log(err);
})

今天看了一下vue的手冊,官方推薦使用axios代替jQuery的ajax請求。
axios在瀏覽器端和服務器端均可使用,返回的就是Promise對象,便於我們下一步操作,其中axios在瀏覽器段的兼容性與vue一致,都是要求IE8+。

下面是使用axios的例子

axios.get('http://127.0.0.1?id=23&name=koastal')
.then((body)=>{
    console.log(body.data);
})
.catch((err)=>{
    console.log(err);
});

既然有axios這麼好用的組件,就沒有必要對request封裝使用了,在需要返回Promise對象時,直接使用axios組件替代request即可。

request:https://github.com/request/request#readme
axios: https://github.com/mzabriskie/axios

發佈了189 篇原創文章 · 獲贊 64 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章