<prompt> Tengeneza programu ya kuchambua wavuti katika JavaScript au TypeScript kwa kutumia Node.js ambayo hutoa maelezo kuhusu filamu 100 bora kutoka kwa tovuti ya IMDb, kuhifadhi data katika hifadhidata ya MongoDB, na kutoa API ili kuuliza data iliyohifadhiwa.PLINFORMAT  <response>: const mongoose needmongoose;const movieSchema new mongoose.Schema kichwa: kamba, mwaka: idadi, Ukadiriaji: nambari, mkurugenzi: kamba, muda: kamba, aina: Kamba,;module.exports mongoose.modelFilamu, movieSchema;const axios hitajiaxios;const cheerio hitajicheerio;const Movie hitaji.movieSchema;kazi ya async scrapeTop100Movies const majibu await axios.get const cheerio.loadresponse.data; const sinema ; tbody.lister-list tr.kilaindex, element ikiwa faharasa 100 const title element.find.titleColumn a.text; const year parseIntelement.find.titleColumn span.secondaryInfo.text.kipande1, -1; const rating parseFloatelement.find.ratingColumn strong.text; const movie Filamu mpya title, mwaka, rating ; sinema.sukumasinema; ; kurudi sinema;module.exports scrapeTop100Movies;const express needexpress;const mongoose needmongoose;const scrapeTop100Movies hitaji.scraper;const Movie hitaji.movieSchema;const app express;const PORT process.env.PORT 3000; Unganisha kwa MongoDBmongoose.connectmongodb:localhost:27017imdb-scraper, useNewUrlParser: kweli, useUnifiedTopology: kweli,;app.getscrape, async req, res jaribu const movies wanasubiri scrapeTop100Movies; subiri Movie.insertManysinema; res.status200 .jsonujumbe: Filamu 100 bora zilizofutwa na kuhifadhiwa ; kukamata kosa console.kosakosa; res.status500.json kosa: Imeshindwa kukwangua data ; ;app.getfilamu, async req, res jaribu const movies wanasubiri Movie.find; hali.status200.jsonfilamu; kukamata kosa console.kosakosa; res.status500.jsonkosa:Imeshindwa kuleta data kutoka kwa hifadhidata ; ;app.listenPORT, console.logSeva inayoendesha kwenye bandari PORT;; 