Как добавить новый объект в MongoDB в зависимости от типа, Node/React
На фронте в зависимости от типа объекта есть разные поля
Но при добавлении захватывает все поля и присваивает им значения null
В postman все работает отлично, потому что там я задаю конкретные значения. Подскажите, пожалуйста, как сделать так, чтобы в объект попадали только значения, которые заполнены?
Node code
const createProduct = async (req, res) => {
const { category, height, width, length, sku, name, price, weight } = req.body
const product = await Product.create({
sku,
name,
price,
category,
weight,
dimensions: { height, width, length },
})
console.log(product)
res.status(StatusCodes.CREATED).json({ product })
}
React code
const addProduct = async () => {
dispatch({ type: CREATE_PRODUCT_BEGIN })
try {
const { sku, name, price, size, weight, height, width, length } = state
await axios.post('http://localhost:5000/api/v1/add-product', {
sku,
name,
price,
size,
weight,
height,
width,
length,
})
dispatch({ type: CREATE_PRODUCT_SUCCESS })
} catch (error) {
if (error.response.status === 401) return
dispatch({
type: CREATE_PRODUCT_ERROR,
payload: { msg: error.response.data.msg },
})
}
}
Reducer
if (action.type === CREATE_PRODUCT_BEGIN) {
return { ...state, isLoading: true }
}
if (action.type === CREATE_PRODUCT_SUCCESS) {
return {
...state,
isLoading: false,
showAlert: true,
alertType: 'success',
alertText: 'New Job Created!',
}
}
if (action.type === CREATE_PRODUCT_ERROR) {
return {
...state,
isLoading: false,
showAlert: true,
alertType: 'danger',
alertText: action.payload.msg,
}
}