Преобразовать AJAX запрос в HTTP-запрос в nodejs - PullRequest
0 голосов
/ 03 февраля 2020

На самом деле я использую ajax вызов для подключения к стороннему API, когда я использую API в браузере, и я могу получить данные из API. Вот код AJAX: -

var settings = {
  async: true,
  //crossDomain: true,
  url: "https://rest.cricketapi.com/rest/v2/schedule/?access_token=XXX"
  //"url": "https://rest.cricketapi.com/rest/v2/match/indaus_2020_one-day_02/?access_token=XXX"
  //bblt20_2019_g28
};

//create token for the api for 24hours
let token;
function getToken() {
  $.ajax({
    type: "POST",
    url: "https://rest.cricketapi.com/rest/v2/auth/",
    data: {
      access_key: "********************************",
      secret_key: "********************************",
      app_id: "http://localhost:8000/",
      device_id: "developer"
    },
    success: function(data) {
      console.log(data);

      token = data.auth.access_token;
      console.log(token,);
      //do something when request is successfull
      createUpcomingMatchesSchedule();
    },
    dataType: "json"
  });
}

function createUpcomingMatchesSchedule() {
  var urlJson = settings.url;
  urlJson = urlJson.replace(/XXX/g, token);
  settings.url = urlJson;

  $.ajax(settings).done(function(response) {
    console.log(response);
    toGetUpcomingMatches(response);
  });
}

Теперь я хочу преобразовать этот метод ajax в запрос http, чтобы я мог использовать данные на сервере, используя nodejs. Вот код: -

const { db } = require("../../utility/admin");
var request = require("request");

// //*************************** API INITIALIZATION ********************************

var settings = {
  async: true,
  //crossDomain: true,
  url: "https://rest.cricketapi.com/rest/v2/schedule/?access_token=XXX"
  //"url": "https://rest.cricketapi.com/rest/v2/match/indaus_2020_one-day_02/?access_token=XXX"
  //bblt20_2019_g28
};

var options = {
  method: "POST",
  // hostname: "https://rest.cricketapi.com",
  uri: "https://rest.cricketapi.com/rest/v2/auth/",
  access_key: "********************************",
  secret_key: "********************************",
  app_id: "http://localhost:8000/",
  device_id: "developer"
};

let token;
function getToken() {
  request(options, function(error, response, body) {
    if (error) {
      console.log(error);
    } else {
      console.log(body);
      token = body.auth.access_token;
      console.log(token);
      // console.log(response);
    }
  });
}

module.exports = { getToken };

Но я не могу получить доступ к данным из API, когда я использую код nodejs. Заранее спасибо

1 Ответ

0 голосов
/ 03 февраля 2020

?‍? Например, , вы можете посмотреть этот код ниже: ?

var options = {
  method: "POST",
  // hostname: "https://rest.cricketapi.com",
  uri: "https://rest.cricketapi.com/rest/v2/auth/",
  // make sure, on this API, use body or headers. 
  // If body, you can change this `headers` to `form`.
  headers: { 
    access_key: "********************************",
    secret_key: "********************************",
    app_id: "http://localhost:8000/",
    device_id: "developer"
  }
};

let token;
function getToken() {
  return new Promise((resolve, reject) => {
    request(options, function(error, response, body) {
      if (error) return reject(error) 
      body = JSON.parse(body);
      console.log(body);
      token = body.auth.access_token;
      return resolve(token);
    });
  })
}

Я надеюсь, что это может помочь вам ?.

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