<prompt> Tengeneza programu ya wavuti ya TypeScript inayoruhusu watumiaji kuunda, kusoma, kusasisha na kufuta madokezo. Programu inapaswa kutumia seva ya Express.js na kuhifadhi data katika hifadhidata ya SQLite.PLINFORMAT  <response>: chapa srcapp.tskuagiza Express kutoka kueleza;agiza bodyParser kutoka kwa body-parser;ingiza router kutoka .routes;const app express;app.usebodyParser.json;app.useapi, kipanga njia;safirisha programu chaguo-msingi; srcdb.tsagiza sqlite3 kutoka sqlite3;ingiza fungua kutoka sqlite;export async kazi getDb kurudi wazi jina la faili: .database.sqlite, dereva: sqlite3.Database, ; srcnjia.tsagiza Router kutoka express;agiza getDb kutoka .db;const router Router ;router.getnotes, async req, res const db await getDb; const notes subiri db.allCHAGUA KUTOKA kwa vidokezo; res.jsonmaelezo;;router.postnotes, async req, res const db await getDb; const note req.body; await db.runINGIZA MADOKEZO kichwa, maudhui THAMANI ?, ?, note.title, note.content; res.sendStatus201;;router.putnotes:id, async req, res const db await getDb; const id req.params.id; const note req.body; await db.runSASISHA madokezo SET title ?, content ? WAPI id ?, note.title, note.content, id; res.sendStatus200;;router.deletenotes:id, async req, res const db await getDb; const id req.params.id; await db.runFUTA KUTOKA KWA vidokezo WAPI id ?, id; res.sendStatus200;;safirisha nje kipanga njia; srcindex.tsingiza programu kutoka kwa .app;const PORT process.env.PORT 3000;app.listenPORT, console.logSeva inafanya kazi kwenye bandari PORT;; 