Hi i have the following code:
export function createProduct(req, res) {
console.log("Execution")
const product = new Product({ ...req.body })
product.save(function (err, product) {
if (err) {
console.log("error")
const errorResponse = {}
for (let key in err.errors) {
//ValidationError handler
if (err.errors[key].properties) {
errorResponse[key] = err.errors[key].properties.message
}
//CastError handler
else {
errorResponse[key] = err.errors[key].toString().split(":")[1]
}
}
return res.status(400).send({ ...errorResponse })
}
console.log("created")
return res.send({ product })
})
}
There is no error on express side, console.log("Execution") is working and display this message correctly. I tested this by using Postman, when i send some data, response never come and on Postman there is error: "Error: socket hang up".
I've made console.log for req.body, and this is my output:
{
name: 'Apple Iphone 11 Pro 64GB Space Gray',
category: 'smartphone',
price: 4699,
inMagazine: { blocked: 0, inStock: 40 },
shortDescription: 'Odkryj wszystkie zalety iPhone 11 Pro 512 GB Silver. Smartfona, który zawstydza podkręconą wydajnością. Posiada bowiem najszybszy w historii procesor A13 Bionic oraz baterię, która pozwala na wiele. Weź iPhone 11 Pro do ręki i rób zdjęcia, których nie powstydziłby się nawet profesjonalista. Teraz masz do tego odpowiednie narzędzie – nowy iPhone 11 Pro posiada potrójny aparat główny, działający w oparciu o uczenie maszynowe. Efekty swojej fotograficznej przygody wraz z najmniejszymi detalami możesz ocenić z kolei na olśniewającym ekranie Super Retina XDR.',
images: [ { order: 1, src: '' } ]
}
Right after that, I found that I would check why it hangs, I had no error in the nodejs console. So I added two console.log to the code:
console.log("error")
console.log("created")
But both doesn't execute. So i made some code refactor and this works the same like above:
export async function createProduct(req, res) {
try {
const product = await Product.create({ ...req.body })
console.log("created")
return res.send({ product })
} catch (err) {
console.log("error")
const errorResponse = {}
for (let key in err.errors) {
//ValidationError handler
if (err.errors[key].properties) {
errorResponse[key] = err.errors[key].properties.message
}
//CastError handler
else {
errorResponse[key] = err.errors[key].toString().split(":")[1]
}
}
return res.status(400).send({ ...errorResponse })
}
}
I don't know what the cause of this problem could be. This is link to whole project: https://github.com/codemasternode/DietShopping
{ ...req.body }please.