server-side Code
Here you can see this is my server-side code and it’s below i have put my client-side code and what error is showing. And I can’t catch what’s wrong here
app.post("/service", async (res, req) => {
const newService = req.body;
const result = await databaseCollection.insertOne(newService);
res.send(result);
});
Client Side Code
fetch("http://localhost:5000/service", {
method: "POST", // or 'PUT'
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
})
.then((response) => response.json())
.then((result) => {
console.log("Success:", result);
})
.catch((error) => {
console.error("Error:", error);
});
};
Error Is
(node:5388) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '_id' of undefined
at E:htmllAssignment_11Servermyappnode_modulesmongodbliboperationscommon_functions.js:64:17
at Array.map (<anonymous>)
at prepareDocs (E:htmllAssignment_11Servermyappnode_modulesmongodbliboperationscommon_functions.js:63:17)
at new InsertOneOperation (E:htmllAssignment_11Servermyappnode_modulesmongodbliboperationsinsert.js:42:74)
at Collection.insertOne (E:htmllAssignment_11Servermyappnode_modulesmongodblibcollection.js:149:64)
at E:htmllAssignment_11Servermyappindex.js:37:47
at Layer.handle [as handle_request] (E:htmllAssignment_11Servermyappnode_modulesexpresslibrouterlayer.js:95:5)
at next (E:htmllAssignment_11Servermyappnode_modulesexpresslibrouterroute.js:144:13)
at Route.dispatch (E:htmllAssignment_11Servermyappnode_modulesexpresslibrouterroute.js:114:3)
at Layer.handle [as handle_request] (E:htmllAssignment_11Servermyappnode_modulesexpresslibrouterlayer.js:95:5)
(node:5388) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
2
Answers
Try this method.
you can use save method instead of
insertOne
first instantiate your object by addingnew databaseCollection(newService)
.and after that call save method to insert your collection
Use
res.json
instead ofres.send
to enforceContent-Type
to be of JSON typeYour code should look like this: