Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extract the data from a fetch request and export it

I'm happy to join the StackOverFlow community.

I am new to web development and have billions of questions.

My question will concern a fetch request in javascript.

I'm trying to extract the data (userId) from the response in order to export it but I can't.

I tried to set the userId variable to global but it doesn't work.

Is there anyone who could help him on this issue.

Thank you in advance for your answers.

let userId = "";

let loggedUserId = () => {
  let storageToken = localStorage.getItem("groupomania");
  let objJson = JSON.parse(storageToken);
  let token = objJson.token;

  let params = token;

  const headers = new Headers();
  headers.append("Authorization", `Bearer ${token}`);

  let url = "http://localhost:3000/api/user/userId/" + params;

  const parametresDeRequete = {
    method: "GET",
    headers: headers,
  };

  fetch(url, parametresDeRequete)
    .then(function(response) {
      if (response.status !== 200) {
        console.log(
          "Looks like there was a problem. Status Code: " + response.status
        );
        return;
      }

      response.json().then(function(data) {
        userId = data.data;

        console.log(
          "%c ⚠️ Utilities Logged User Id ⚠️ ===>>",
          "color:red ;  font-size: 15px",
          userId
        );
      });
    })

    .catch(function(err) {
      console.log("Fetch Error :-S", err);
    });
};

loggedUserId();
like image 595
Idric Evarne Avatar asked Mar 31 '21 04:03

Idric Evarne


People also ask

How do I get data from a fetch response?

Use the fetch() method to return a promise that resolves into a Response object. To get the actual data, you call one of the methods of the Response object e.g., text() or json() . These methods resolve into the actual data.

How do I save fetch responses in a variable?

Approach: First make the necessary JavaScript file, HTML file and CSS file. Then store the API URL in a variable (here api_url). Define a async function (here getapi()) and pass api_url in that function. Define a constant response and store the fetched data by await fetch() method.

How do I get JSON from fetch response?

To get JSON from the server using the Fetch API, you can use the response. json() method. The response. json() method reads the data returned by the server and returns a promise that resolves with a JSON object.

Can you fetch data from post request?

You can get more data from the request, refer to the documentation. POST request using fetch API: The post request is widely used to submit forms to the server. Fetch also supports the POST method call.


Video Answer


1 Answers

You need to return response.json() in your first then. Then you chain another then to that one where you receive your data (if any was sent to you). Be sure that the data you receive is json.

fetch(url, parametresDeRequete)
    .then(function(response) {
      if (response.status !== 200) {
        console.log(
          "Looks like there was a problem. Status Code: " + response.status
        );
        return;
      } else {
        return response.json(); // returns unresolved Promise
      }
     }
     .then(function(data) {  // data refers to the resolved promise. If the response is not json then the previous .json() method will throw an error which you will be able to catch with .catch()
        userId = data.id;

        console.log(
          "%c ⚠️ Utilities Logged User Id ⚠️ ===>>",
          "color:red ;  font-size: 15px",
          userId
        );
      });
    })
    .catch(function(err) {
      console.log("Fetch Error :-S", err);
    });
like image 173
uranshishko Avatar answered Oct 21 '22 15:10

uranshishko