Используйте перехватчик Axios для смены токена - PullRequest
0 голосов
/ 20 ноября 2018

Как я могу использовать перехватчик для смены токена?По сути, когда я достигаю своего лимита запросов, я хочу изменить токен до того, как запрос будет сделан.До сих пор я пытался добавить его в запрос на получение, но я получил неопределенную ошибку.Вот код:

//class for twitter instance
class TwitterDev{
    constructor(twitterObj){
        
        if(Object.keys(twitterObj).includes('token')){
            this.token= twitterObj.token;
        }
        this.instance = function twitterAxios(x){
         let token = x;
            let promise = new Promise((resolve, reject) => {
                let header = axios.create({
                  baseURL: "https://api.twitter.com",
                  timeout: 90000,
                 headers: { 
                     Authorization: "Bearer " + token }
                 
                });
 
                resolve(header);
                reject(error);
              });
              return promise;
        
        
        
        }

     
}
get(uri, params={}){
  
   
    return this.instance(this.token).then(obj=>{return obj.get(uri,params)});
//route that instantiates class
let token = process.env.TWITTER_TOKEN,
  token2 = process.env.TWITTER_TOKEN2
let twitter3 = new TwitterDev({token:token});

let ids_test = ["xxxxx"];
let globalCounter2 = 0;
ids_test.forEach(id => {
  let userObj = {
    params: {
      id: id,
      count: "5000",
      stringify_ids: true
    }
  };
  getUserFollowers("/1.1/followers/ids.json", userObj, []).then(res => {
    console.log(res.length);
    fs.writeFileSync(
      `${userObj.params.id}_p2_${setDate()}.json`,
      JSON.stringify(res)
    );
  }).catch(err=>handleRequestError(err));
});

Функция get user возвращает метод twitter3 и вызывает метод .get () с параметрами, здесь я попытался вставить перехватчик.Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...