Nodejsパッケージfetch方法
2030 ワード
フレーム:nodejs+express+es 6
最近ES 5をES 6にアップグレードするにはBabelとwebpackが必要です.
ExpressでBableとWebpackを追加します.ここをクリックしてください.
最近ES 5をES 6にアップグレードするにはBabelとwebpackが必要です.
ExpressでBableとWebpackを追加します.ここをクリックしてください.
import fetch from 'node-fetch'
export default class BaseComponent{
constructor(){
}
async fetch(url = '', data = {}, type = 'GET', resType = 'JSON'){
type = type.toUpperCase();
resType = type.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'
}
}
console.log(JSON.stringify(data))
if(type == 'POST'){
Object.defineProperty(requestConfig, 'body' , {
value: JSON.stringify(data)
})
}
let responseJson;
try {
const response = await fetch(url, requestConfig);
if (resType === 'TEXT') {
responseJson = await response.text();
}else{
responseJson = await response.json();
}
} catch (err) {
console.log(' http ', err);
throw new Error(err)
}
return responseJson
}
}
使用:BaseComponentまたはimport BaseComponentを引き継ぐことでasync geToken(){
let result = await this.fetch(config.tokenApi,
{
"UId": UId,
"Token": Token
}, 'POST')
return result
}