<prompt> Anzisha API ya Node.js REST ambayo inashirikiana na hifadhidata ya PostgreSQL ili kutekeleza shughuli za CRUD kwenye huluki ya bidhaa jina, bei, maelezo, n.k.. Tumia Express.js kama mfumo wa wavuti na Sakinisha kama ORM.PLINFORMAT  <response>: usanidi.jsneeddotenv.config;module.exports maendeleo: jina la mtumiaji: process.env.DB_USER, nenosiri: process.env.DB_PASSWORD, hifadhidata: process.env.DB_NAME, mwenyeji: process.env.DB_HOST, bandari: process.env.DB_PORT, lahaja: postgres, ,; sequelize.jsconst Sequelize needsequelize;const config need.config;const sequelize Sekeza mpya config.development.database, config.development.jina la mtumiaji, config.development.password, mwenyeji: config.development.host, lahaja: config.development.dialect, ;module.exports sequelize; mifanobidhaa.jsconst Sequelize, DataTypes needsequelize;const sequelize hitaji..sequelize;const Product sequelize.defineBidhaa, kitambulisho: aina: DataTypes.INTEGER, Msingi muhimu: kweli, AutoIncrement: kweli, , jina: aina: DataTypes.STRING, allowNull: uongo, , bei: aina: DataTypes.FLOAT, allowNull: uongo, , maelezo: aina: DataTypes.TEXT, allowNull: kweli, ,;module.exports Bidhaa; njiabidhaa.jsconst express needexpress;const router express.Router ;const Product need..modelsproduct;router.get, async req, res jaribu const products await Product.findAll; res.jsonbidhaa; kukamata kukosea res.status500.json ujumbe: err.message ; ;router.get:id, async req, res const id req.params.id; jaribu const product await Product.findByPkid; ikiwa !bidhaa return res.status404.json ujumbe: Bidhaa haijapatikana ; res.jsonbidhaa; kukamata kukosea res.status500.json ujumbe: err.message ; ;router.post, async req, res const jina, bei, maelezo req.body; jaribu const newProduct await Product.create jina, bei, maelezo ; res.status201.jsonmpyaBidhaa; kukamata kukosea res.status400.json ujumbe: err.message ; ;router.put:id, async req, res const id req.params.id; const jina, bei, maelezo req.body; jaribu const product await Product.findByPkid; ikiwa !bidhaa return res.status404.json ujumbe: Bidhaa haijapatikana ; product.name jina Jina la bidhaa; bidhaa.bei bei bidhaa.bei; product.description maelezo Maelezo ya bidhaa; subiri product.save; res.jsonbidhaa; kukamata kukosea res.status400.json ujumbe: err.message ; ;router.delete:id, async req, res const id req.params.id; jaribu const product await Product.findByPkid; ikiwa !bidhaa return res.status404.json ujumbe: Bidhaa haijapatikana ; subiri bidhaa.haribu ; res.json ujumbe: Bidhaa imefutwa kwa mafanikio ; kukamata kukosea res.status500.json ujumbe: err.message ; ;module.exports kipanga njia; index.jsconst express needexpress;const bodyParser needbody-parser;const productRoutes hitaji.routesproducts;const sequelize hitaji.sequelize;const app express;const PORT process.env.PORT 3000;app.usebodyParser.json;app.useapiproducts, productRoutes;sequelize.sync.kisha app.listenPORT, console.logSeva inayoendesha kwenye bandari PORT; ;; 