1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import fetch from 'node-fetch';
- export default class BaseComponent {
- constructor(){
- }
- async fetch(url = '', data = {}, type = 'GET', resType = 'JSON'){
- type = type.toUpperCase();
- resType = resType.toUpperCase();
- if (type == 'GET') {
- let dataStr = ''; //数据拼接字符串
- Object.keys(data).forEach(key => {
- dataStr += key + '=' + data[key] + '&';
- })
- if (dataStr !== '') {
- dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
- url = url + '?' + dataStr;
- }
- }
- let requestConfig = {
- method: type,
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- }
- if (type == 'POST') {
- Object.defineProperty(requestConfig, 'body', {
- value: JSON.stringify(data)
- })
- }
- let responseJson;
- console.log(url)
- try {
- const response = await fetch(url, requestConfig);
- if (resType === 'TEXT') {
- responseJson = await response.text();
- }else{
- responseJson = await response.json();
- }
- } catch (error) {
- console.error(error)
- throw new Error(error)
- }
- return responseJson
- }
- }
|