How can I get a large of data from smart contract?

Hello, Everyone. I am a newer of solidity, now, I am developing a react app and smart contract of NFT, I have a question here:
If there are a lot of NFT in smart contract, maybe, 100K for example. every NFT info is store in a struct.
when user try to get some NFT info with the contract.methods.
but it is very slow, when user need many NFTs' info, maybe 100+ times call for 100+ NFT info.
So, I am thinking to run a node.js script to get the all info period (maybe 1 minutes) and write all info to a json file. when user come to call info, the web can read the json directly and get the info from that.

Is this a good solution for that?
How can node.js script can get all NFT's info quickly?

Yes this is a slow method to get info. A better way to do this is to use The Graph. We have OpenZeppelin Subgraphs to create your own, or you can check out a predeployed one here.