'CoinGecko API: Can't resolve 'https' and Can't resolve 'querystring'

I'm just getting started with the CoinGecko API but the first call I made to /ping. It gives me the error Module not found: Error: Can't resolve 'https'. Any idea why is this happening? I'm doing it with react, here is the code:

project/src/App.js

import { useEffect } from 'react';
import axios from 'axios';
// import CoinGecko from 'coingecko-api/lib/CoinGecko';
const CoinGecko = require("coingecko-api");




function App() {  
  
  useEffect(() => {
    const CoinGeckoClient = new CoinGecko();
    
    async function pingAPI(){
      const response = await CoinGeckoClient.ping();
      console.log(response)
      return response
    
    }

    pingAPI()

  }, [])
  
  return (
    <div>Hello world</div>
  )
}

export default App;

Here is the full stacktrace:

Compiled with problems:X

ERROR in ./node_modules/coingecko-api/lib/CoinGecko.js 3:14-30

Module not found: Error: Can't resolve 'https' in '/Users/romunoz/Documents/code/javascript/cryptoapp/node_modules/coingecko-api/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
    - add a fallback 'resolve.fallback: { "https": require.resolve("https-browserify") }'
    - install 'https-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
    resolve.fallback: { "https": false }


ERROR in ./node_modules/coingecko-api/lib/CoinGecko.js 5:20-42

Module not found: Error: Can't resolve 'querystring' in '/Users/romunoz/Documents/code/javascript/cryptoapp/node_modules/coingecko-api/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
    - add a fallback 'resolve.fallback: { "querystring": require.resolve("querystring-es3") }'
    - install 'querystring-es3'
If you don't want to include a polyfill, you can use an empty module like this:
    resolve.fallback: { "querystring": false }


Solution 1:[1]

https is a nodejs module so no, you need a backend for this.

If you don't want to have a backend then you don't need a wrapper and just use the api endpoints

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Jay Stance