Whenever I try a post request in insomnia with my endpoint: http://localhost:3000/clients, I get a TypeError, but this happens only with post method, get seems ok. I would be glad if you could explain it to me. Thanks in advance!
const express = require("express");
const app = express();
const PORT = 3000;
const database = require("./data.json");
//get all clients
app.get("/clients", (req, res) => {
res.status(200).json(database)
app.use(express.json());
});
//get single client
app.get("/clients/:id", (req, res) => {
const { id } = req.params;
const client = database.find(cli => cli.id == id);
if (!client) return res.status(204).json();
res.status(200).json(client);
});
//post clients
app.post("/clients", (req, res) => {
const { name, email } = req.body;
res.json({ name, email });
});
app.put("/clients/", (req, res) => {
});
app.delete("/clients/", (req, res) => {
});
app.listen(PORT, () => {
console.log("Server is on");
})
TypeError: Cannot destructure property 'name' of 'req.body' as it is undefined.
at c:\Users\corno4\Documents\API\index.js:40:13
at Layer.handle [as handle_request] (c:\Users\corno4\Documents\API\node_modules\express\lib\router\layer.js:95:5)
at next (c:\Users\corno4\Documents\API\node_modules\express\lib\router\route.js:144:13)
at Route.dispatch (c:\Users\corno4\Documents\API\node_modules\express\lib\router\route.js:114:3)
at Layer.handle [as handle_request] (c:\Users\corno4\Documents\API\node_modules\express\lib\router\layer.js:95:5)
at c:\Users\corno4\Documents\API\node_modules\express\lib\router\index.js:284:15
at Function.process_params (c:\Users\corno4\Documents\API\node_modules\express\lib\router\index.js:346:12)
at next (c:\Users\corno4\Documents\API\node_modules\express\lib\router\index.js:280:10)
at expressInit (c:\Users\corno4\Documents\API\node_modules\express\lib\middleware\init.js:40:5)
at Layer.handle [as handle_request] (c:\Users\corno4\Documents\API\node_modules\express\lib\router\layer.js:95:5)