Qu-Ack / opensource_starter

0 stars 12 forks source link

Add A post endpoint to create a product #19

Open Qu-Ack opened 2 weeks ago

Qu-Ack commented 2 weeks ago

Description

We need to implement a new POST endpoint that allows users to create a new product and updates the products.json file accordingly. This feature will enable our application to dynamically add new products to our inventory.

Requirements

Create a new route for the POST request in the Express app file (app.js or server.js). Implement an async route handler function to process the request. Use express.json() middleware to parse the request body. Read the existing products from products.json. Generate a unique ID for the new product. Add the new product to the existing data. Write the updated data back to products.json. Implement proper error handling using try/catch blocks. Send appropriate success (201 Created) or error responses.

Implementation Steps

Create the POST route using app.post('/api/products', async (req, res) => { ... }) Read existing products using fs.promises.readFile() Parse the JSON data Add the new product (with generated ID) to the products array Write updated data using fs.promises.writeFile() Send a 201 status with the new product data on success Send a 500 status with an error message if an error occurs

Testing

Use Postman or curl to send POST requests to the new endpoint Verify that new products are added to products.json Check for correct status codes and response data Test error scenarios (e.g., invalid data, file access issues)

Resources

Express routing: https://expressjs.com/en/guide/routing.html Async functions: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function fs/promises API: https://nodejs.org/api/fs.html#promises-api try...catch: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch

Tutorial Videos

Express.js Routing: https://www.youtube.com/watch?v=L72fhGm1tfE&t=1140s Async/Await in JavaScript: https://www.youtube.com/watch?v=V_Kr9OSfDeU Express Middleware: https://www.youtube.com/watch?v=lY6icfhap2o Node.js File System: https://www.youtube.com/watch?v=ZySsdm576wE JavaScript Array Methods: https://www.youtube.com/watch?v=R8rmfD9Y5- JavaScript Error Handling: https://www.youtube.com/watch?v=cFTFtuEQ-10 Express JSON Response: https://www.youtube.com/watch?v=uRwOH_J6LCc API Testing with Postman: https://www.youtube.com/watch?v=VywxIQ2ZXw4