<prompt> Tekeleza huduma ya kifupisho cha URL kwa kutumia Node.js na Express. Hifadhi URL zilizofupishwa na URL zao asili zinazolingana katika hifadhidata ya PostgreSQL. Huduma inapaswa kutoa vidokezo vya kuunda URL mpya fupi, kurejesha URL asili kwa msimbo wake mfupi, na kuwaelekeza watumiaji kwenye URL asili wanapotembelea kiungo kifupi.  <response>: Ili kutekeleza huduma ya kifupisho cha URL kwa kutumia Node.js, Express, na PostgreSQL, fuata hatua hizi:1. Weka mradi2. Sakinisha vifurushi vinavyohitajika3. Sanidi muunganisho wa hifadhidata4. Unda schema ya hifadhidata5. Tekeleza ncha za API6. Jaribu maombi 1. Sanidi mradiUnda saraka mpya ya mradi wako na uende kwayo kwenye terminal yako.bashimkdir url-fupicd url-fupiAnzisha mradi mpya wa Node.js kwa kuendesha npm init -y. 2. Sakinisha vifurushi vinavyohitajikaSakinisha vifurushi vifuatavyo: express, pg PostgreSQL mteja kwa Node.js, dotenv kudhibiti vigeu vya mazingira, na nanoid kutoa misimbo fupi ya kipekee.bashinpm install express pg dotenv nanoid 3. Sanidi muunganisho wa hifadhidataUnda faili ya .env katika mzizi wa mradi wako na uongeze maudhui yafuatayo, ukibadilisha vishikilia nafasi na kitambulisho chako halisi cha PostgreSQL:DATABASE_URLpostgres:username:passwordlocalhostdbnameUnda faili ya db.js kwenye mzizi wa mradi wako na uongeze nambari ifuatayo ili kusanidi muunganisho wa hifadhidata: javascriptconst Dimbwi needpg;needdotenv.config;const pool Dimbwi jipya connectionString: process.env.DATABASE_URL,;module.exports swala: maandishi, vigezo pool.querymaandishi, vigezo,; 4. Unda mpangilio wa hifadhidataUnda faili mpya inayoitwa schema.sql kwenye mzizi wa mradi wako na uongeze msimbo ufuatao wa SQL ili kuunda jedwali la kuhifadhi URL: sqlTUNZA JEDWALI IKIWA HAIPO urls id UFUNGUO WA MSINGI WA SERIAL, original_url VARCHAR2048 SI UFUPI, msimbo_mfupi CHAR7 KIPEKEE SI UFUPI;Sasa endesha hati hii ili kuunda jedwali kwenye hifadhidata yako ya PostgreSQL:bashipsql -f schema.sql postgres:username:passwordlocalhostdbname 5. Tekeleza ncha za APIUnda faili mpya iitwayo app.js katika mzizi wa mradi wako na uongeze msimbo ufuatao ili kusanidi seva ya Express na kutekeleza miisho ya API inayohitajika: javascriptconst express needexpress;const db need.db;const nanoid neednanoid;const app express;app.useexpress.json; Unda URL fupi mpyaapp.postapifupisha, async req, res const originalUrl req.body.url; ikiwa !originalUrl return res.status400.jsonkosa:URL inahitajika ; jaribu const shortCode nanoid7; subiri db.query INGIZA NDANI ya urls original_url, short_code THAMANI 1, 2, originalUrl, ShortCode ; res.jsonMsimbo mfupi ; kukamata kukosea console.errorkosa; res.status500.json kosa: Imeshindwa kufupisha URL ; ; Rejesha URL asili kwa msimbo wake mfupiapp.getapi:shortCode, async req, res const shortCode req.params.shortCode; jaribu const result subiri db.query CHAGUA original_url KUTOKA url WHERE short_code 1, Msimbo fupi ; ikiwa matokeo.rows.length 0 return res.status404.json kosa: Nambari fupi haijapatikana ; res.json url: result.rows0.original_url ; kukamata kukosea console.errorkosa; res.status500.json kosa: Imeshindwa kuepua URL ; ; Elekeza watumiaji kwenye URL asili wanapotembelea kiungo kifupiapp.get:shortCode, async req, res const shortCode req.params.shortCode; jaribu const result subiri db.query CHAGUA original_url KUTOKA url WHERE short_code 1, Msimbo fupi ; ikiwa matokeo.rows.length 0 return res.status404.tumaNambari fupi haijapatikana; redirect.redirectmatokeo.safu0.original_url; kukamata kukosea console.errorkosa; res.status500.tumaImeshindwa kuelekeza kwingine; ;const PORT process.env.PORT 3000;app.listenPORT, console.logSeva inayoendesha kwenye bandari PORT;; 6. Jaribu programuAnzisha seva yako kwa kuendesha node app.js.Sasa unaweza kujaribu miisho ya API yako kwa kutumia zana kama curl au Postman:- Unda URL fupi mpya kwa kutuma ombi la POST kwa apifupisha na mwili wa JSON ulio na sehemu ya url.- Rejesha URL asili kwa msimbo wake mfupi kwa kutuma ombi la GET kwa api:shortCode.- Tembelea kiungo kifupi katika kivinjari chako k.m., na uhakikishe kinakuelekeza kwenye URL asili.Ni hayo tu! Umetekeleza huduma ya msingi ya kifupisho cha URL kwa kutumia Node.js, Express, na PostgreSQL. 