<prompt> Unda programu ya Node.js Express ambayo hutumika kama API RESTful ya kudhibiti mfumo rahisi wa hesabu. API inapaswa kutumia sehemu za mwisho za kuongeza vipengee pamoja na sehemu kama vile jina la bidhaa, maelezo, kiasi na bei, kusasisha maelezo ya kipengee, kufuta vipengee na kurejesha orodha ya bidhaa zote au bidhaa mahususi kwa kitambulisho. Tumia MongoDB kama hifadhidata ya nyuma.  <response>: Ili kuunda programu ya Node.js Express ambayo hutumika kama API RESTful ya kudhibiti mfumo rahisi wa hesabu, fuata hatua hizi:1. Sakinisha vifurushi vinavyohitajika:bashinpm init -ynpm install express mongoose body-parser dotenv2. Unda faili ya .env ili kuhifadhi kamba yako ya unganisho ya Unda faili ya server.js na usanidi muundo msingi wa programu: javascriptconst express needexpress;const bodyParser needbody-parser;const mongoose needmongoose;needdotenv.config;const app express;app.usebodyParser.json; Unganisha kwa MongoDBmongoose.connectprocess.env.MONGODB_URI, useNewUrlParser: kweli, useUnifiedTopology: kweli, useFindAndModify: uongo,;const db mongoose.unganisho;db.onkosa, console.error.bindconsole, hitilafu ya muunganisho:;db.mara mojafungua, console.logImeunganishwa kwa MongoDB;; Anzisha sevaconst port process.env.PORT 3000;app.listenbandari, console.logSeva inafanya kazi kwenye bandari port;;4. Bainisha schema ya Mongoose na modeli ya bidhaa kwenye orodha: javascript Ongeza msimbo huu baada ya muunganisho wa MongoDB katika server.jsconst itemSchema new mongoose.Schema jina: aina: Kamba, inahitajika: kweli , maelezo: kamba, wingi: aina: Nambari, chaguomsingi: 0 , bei: nambari,;const Item mongoose.modelKipengee, kipengeeSchema;5. Tekeleza ncha za API za kuongeza, kusasisha, kufuta na kurejesha vipengee: javascript Ongeza kipengeeapp.postvitu, async req, res const newItem Kitu kipya req.body; jaribu subiri newItem.save; hali.status201.jsonKipengee kipya; kukamata kosa res.status400.jsonujumbe: error.message ; ; Pata vitu vyoteapp.getvitu, async req, res jaribu const vitu kusubiri Item.find ; res.jsonvitu; kukamata kosa res.status500.jsonujumbe: error.message ; ; Pata bidhaa kwa kitambulishoapp.getitems:id, getItemById, req, res res.jsonres.item;; Sasisha kipengeeapp.putitems:id, getItemById, async req, res Object.assignres.item, req.body; jaribu subiri res.item.save; res.jsonres.item; kukamata kosa res.status400.jsonujumbe: error.message ; ; Futa kipengeeapp.deleteitems:id, getItemById, async req, res jaribu subiri res.item.remove; res.json ujumbe: Kipengee kimefutwa; kukamata kosa res.status500.jsonujumbe: error.message ; ; Middleware kupata bidhaa kwa kitambulishokazi ya async getItemByIdreq, res, next acha kipengee; jaribu item await Item.findByIdreq.params.id; ikiwa ! kitu return res.status404.json ujumbe: Kipengee hakijapatikana ; kukamata kosa return res.status500.json message: error.message ; res.item kipengee; ijayo ;Sasa una API rahisi ya usimamizi wa hesabu kwa kutumia Node.js, Express, na MongoDB. Unaweza kujaribu API kwa kutumia zana kama vile Postman au curl ili kutuma maombi kwenye sehemu za mwisho ambazo umeunda. 