<prompt> Tengeneza programu ya TypeScript inayounganishwa na hifadhidata ya MongoDB, inaruhusu watumiaji kuongeza na kurejesha rekodi za muundo wa Kitabu pamoja na jina, mwandishi na tarehe ya kuchapishwa, na hutoa utendaji wa kimsingi wa utafutaji kulingana na maneno muhimu.  <response>: Ili kuunda programu tumizi ya TypeScript inayounganisha kwenye hifadhidata ya MongoDB na kutoa utendakazi uliobainishwa, fuata hatua hizi:1. Sakinisha vitegemezi vinavyohitajikaKwanza, tengeneza saraka mpya ya mradi wako na uingie ndani yake. Kisha, anzisha mradi mpya wa Node.js kwa kuendesha npm init -y. Baada ya hayo, sasisha utegemezi muhimu kwa kutumia npm:bashinpm install express mongoose body-parsernpm install --save-dev typescript ts-node typesexpress typesmongoose typesnodi2. Sanidi TypeScriptUnda faili ya tsconfig.json kwenye mzizi wa mradi wako na maudhui yafuatayo:json compilerOptions: target: es6, module: commonjs, outDir: .dist, kali: kweli, esModuleInterop: kweli , include: src.ts, exclude: node_modules3. Unda mtindo wa KitabuUnda folda ya src na ndani yake, unda faili inayoitwa book.model.ts iliyo na maudhui yafuatayo: chapaagiza Schema, model kutoka mongoose;interface IBook kichwa: kamba; mwandishi: kamba; uchapishajiTarehe: Tarehe;const bookSchema Schema mpya kichwa: aina: Kamba, inahitajika: kweli , mwandishi: aina: Kamba, inahitajika: kweli , Tarehe ya kuchapishwa: aina: Tarehe, inahitajika: kweli ;export const Book modelKitabu, bookSchema;4. Tekeleza seva na njiaUnda faili inayoitwa app.ts ndani ya src folda iliyo na maudhui yafuatayo: chapaimport express, Omba, Jibu kutoka express;agiza bodyParser kutoka kwa body-parser;agiza unganisha kutoka mongoose;leta Kitabu kutoka .book.model;const app express;app.usebodyParser.json; Unganisha kwa MongoDBunganishamongodb:localhost:27017bookdb, useNewUrlParser: kweli, useUnifiedTopology: kweli .then console.logImeunganishwa kwa MongoDB .kamataerr console.errorerror; Ongeza kitabu kipyaapp.postvitabu, async req: Ombi, res: Response jaribu const book Kitabu kipya req.body; subiri kitabu.hifadhi; hali.asili201.tumakitabu; kukamata kosa res.status400.tumaerror.message; ; Pata vitabu vyoteapp.getvitabu, async _: Ombi, res: Response jaribu const books await Book.find; tuma tenavitabu; kukamata kosa res.status500.tumaerror.message; ; Tafuta vitabu kwa neno kuuapp.getbookssearch:neno kuu, async req: Ombi, res: Response jaribu const neno kuu req.params.neno kuu; const books subiri Book.find au: title: regex: keyword, options: i , mwandishi: regex: neno kuu, options: i ; tuma tenavitabu; kukamata kosa res.status500.tumaerror.message; ;const PORT process.env.PORT 3000;app.listenPORT, console.logSeva inafanya kazi kwenye bandari PORT;;5. Endesha programuOngeza maandishi yafuatayo kwenye faili yako ya package.json:jsonscripts: start: ts-node srcapp.ts, build: tsc, serve: node distapp.jsSasa, unaweza kuendesha programu kwa kutumia npm start. Hii itaanzisha seva kwenye mlango wa 3000. Unaweza kutumia zana kama Postman au curl ili kujaribu ncha zako za API.Kumbuka kuwa na MongoDB inayoendesha kabla ya kuanza programu. Ikiwa haijasakinishwa, fuata maagizo kutoka kwa tovuti rasmi: 