Я использую mongoDB в качестве базы данных в одном из моих проектов reactjs. Но не может обновить / изменить уже загруженные данные. При попытке обновить мои данные отображается ошибка. Как решить эту проблему.
Внешний интерфейс
<TableBody>
{
appointment.map((appointment) => (
<TableRow key={appointment._id}>
<TableCell component="th" scope="row" align="center">
{appointment.details.name}
</TableCell>
<TableCell align="center">{appointment.details.time}</TableCell>
<TableCell align="center">
<Select
value={action}
onChange={handleChange}
>
<MenuItem onClick={() => setId(appointment._id)} value={"notVisited"}>Not Visited</MenuItem>
<MenuItem onClick={() => setId(appointment._id)} value={"visited"}>Visited</MenuItem>
</Select>
</TableCell>
</TableRow>
))
}
</TableBody>
Функция handleChange
const handleChange = (event) => {
setAction(event.target.value);
fetch("http://localhost:4000/modifyAppointmentByKey", {
method: "post",
headers: {
"Content-type": "application/json"
},
body: JSON.stringify({action: action, _id: id})
})
.then(response => response.json())
.then(data => {
console.log("modify done");
})
}
Бэкенд
app.post('/modifyAppointmentByKey', (req, res) => {
const _id = req.body._id;
const action = req.body.action;
client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
const collection = client.db("doctorsPortal").collection("appointment");
collection.updateOne({"_id": objectId(_id)}, {$set: action}, (err, result)=>{
if(err){
res.status(500).send({message:err});
}
else{
console.log("done");
res.send(documents);
}
})
client.close();
});
});