После отображения в ListOrder я хочу иметь возможность изменить два значения моего объекта: 'inProgress' и 'fini sh', это нормально .. Но для обновления в db у меня есть ошибка, возможно, связанная с идентификатором или формат объекта.
помогите пожалуйста огромное спасибо
export const ListOrder = props => {
const [order, setOrder ] = useState(props.commandes)
const [ inProgressCheck, setInProgress] = useState(true)
const [ finishCheck, setFinish] = useState(false)
const handleCheckboxChangeProgress = (e) => {
const checkbOne = e.target.checked
setInProgress ( checkbOne )}
const handleCheckboxChangeFinish = (e) => {
const checkbTwo = e.target.checked
setFinish ( checkbTwo )}
const valid = async () => {
setOrder(order => ({...order, status: {
inProgress: inProgressCheck,
finish: finishCheck
}}))
}
const update = async () => {
console.log('payload', order) // my Object update
await apiCallStripe.updateOrderById(order).then(res => {
window.alert(`Update OK`)
})
}
updateOrderById ...
const apiCallStripe = axios.create({
baseURL: 'http://localhost:4242/api',
})
const updateOrderById = (id, payload) => apiCallStripe.put(`/order/${id}`, payload)
...
router ...
router.put('/order/:id', OrderCtrl.updateOrder)
контроллер ...
updateOrder = async (req, res) => {
const body = req.body
console.log('body', body) // empty
if (!body) {
return res.status(400).json({
success: false,
error: 'You must provide a body to update',
})
}
Order.findOne({_id: req.params.id}, (err, order) => {
console.log('order', order) // Empty
if (err) {
return res.status(404).json({
err,
message: 'Order not found! !',
})
}
order.client = body.client
order.items = body.items
order.totalCmd = body.totalCmd
order.status = body.status
order
.save()
.then(() => {
return res.status(200).json({
success: true,
id: order._id,
message: 'order updated!',
})
})
.catch(error => {
return res.status(404).json({
error,
message: 'order not updated!',
})
})
})
}
и схема ...
const Order = new Schema(
{
client: { type: Object, required: false },
items: { type: Object, required: false },
totalCmd: { type: Object, required: false },
status: { type: Object, required: false },
},
{ timestamps: true }, // Date post
)
erreur ...
console.log : http://localhost:4242/api/order/[object%20Object]
in network : {message: "Cast to ObjectId failed for value "[object Object]" at path "_id" for model "order"",…}
message: "Order not found !"