nodejs 使用axios模組發起http請求,並進行攔截各種請求資料
阿新 • • 發佈:2018-11-25
1、安裝axios
npm install axios --save -g
2、先寫好攔截器、服務等
新建一個名為http_server.js的檔案
// http_server.js var axios = require("axios") // 建立axios例項s const service = axios.create({ baseURL: "http://127.0.0.1:8000", // api的base_url process.env.BASE_API,,注意區域網訪問時,不能使用localhost timeout: 20 * 1000 // 請求超時時間 }) // request攔截器,攔截每一個請求加上請求頭 service.interceptors.request.use(config => { config.headers.post['Content-Type'] = 'application/x-www-fromurlencodeed' // if (store.state.token) { // // console.log('token存在') // 如果token存在那麼每個請求頭裡面全部加上token // config.headers['Authorization'] = 'bearer ' + store.state.token // } return config }, error => { console.log(error) // for debug Promise.reject(error) }) // respone攔截器 攔截到所有的response,然後先做一些判斷 service.interceptors.response.use( response => { const res = response.data console.log('response攔截器開始攔截') console.log(res) console.log('response攔截器結束攔截(會攔截所有response)') if (res.errorCode !== 0) { // alert('有一定的錯誤存在:' + res.message) //不彈出 將錯傳給調用出使用 return Promise.reject(res.message) //這裡的值會傳遞給我呼叫介面處的錯誤返回資訊 } else { return response.data } },error => { console.log('err' + error)// for debug alert('error') return Promise.reject(error) }) module.exports = { service, }
2、使用axios進行請求的示例
新建一個http_test.js檔案呼叫上面寫好的http_server
var service = require("./axios_test") function getuserinfo() { return service.service({ url: '/account/userinfo', method: 'get' }) } function login(username,password) { return service.service({ url: '/account/login', method: 'post', data: { username, password } }) } function getuserinfo_data() { getuserinfo().then(response => { var data = response.data console.log(data) }).catch(error => { console.log(error) }) } function login_data(username,password) { login(username,password).then(response => { var data = response.data console.log(data) }).catch(error => { console.log(error) }) } // getuserinfo_data() login_data('admin','123456')