1

I am working on a project where I need to create a short URL for a link using bitly. I got success by using the request package of Nodejs. This is what I have done so far.

const token = process.env.BITLY_ACCESS_TOKEN;
    let headers = {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json",
    };
    var dataString = `{ "long_url": "${req.body.url}"}`;
    const api_url = "https://api-ssl.bitly.com/v4/shorten";
    var options = {
      url: api_url,
      method: "POST",
      headers: headers,
      body: dataString,
    };

    request(options, (error, body) => {
      if (error) {
        return res.status(404).send(error);
      }
      return res.render("index", { error: "", data: JSON.parse(body.body) });
    });

my question is how can we use Axios instead of the request package because the request package is deprecated.

I tried but did not get success.

const token = process.env.BITLY_ACCESS_TOKEN;
    let headers = {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json",
    };
    var dataString = `{ "long_url": "${req.body.url}"}`;
    const api_url = "https://api-ssl.bitly.com/v4/shorten";

    const response = await axios.post(
      api_url,
      { long_url: req.body.url },
      {
        headers: headers,
      }
    );
    return res.render("index", { error: "", data: response });

I am getting errors like the body is not defined. Please help me. Thank you!

Vicky Kumar
  • 239
  • 7
  • 21

1 Answers1

2
const response = await axios.post(api_url, dataString, {
  headers: headers,
});
console.log(response.data);
return res.render("index", { error: "", data: response.data });
Vicky Kumar
  • 239
  • 7
  • 21