hi j'ai le code suivant: Il n'y a pas d'erreur sur le côté express, console.log ("Exécution") fonctionne et affiche ce message correctement. J'ai testé cela en utilisant Postman, lorsque j'envoie des données, la réponse ne viendra jamais et sur Postman, il y a une erreur: "Erreur: prise raccroche". P> J'ai fabriqué console.log pour Req.bon, Et ceci est ma sortie: p> juste après cela, j'ai constaté que je vérifierais pourquoi il se bloque, je n'avais aucune erreur dans la console Nodejs. J'ai donc ajouté deux console.log au code: p> mais les deux n'exécute pas. Donc, j'ai fait du refacteur de code et cela fonctionne comme ci-dessus: p> Je ne sais pas quelle est la cause de ce problème.
Ceci est un lien vers un projet entier: https://github.com/codemasternode/dietShopping P> p>
4 Réponses :
Essayez de vous débarrasser du (s) retour (s) devant le RES. Appels de fonction
comme ceci: p>
Ceci est un lien vers Rappo complet: github.com/codemasternode/dietShopping
J'ai eu une pré-enregistrement dans le modèle "Produits" qui ne me permet pas de passer. Je copie et colle d'un autre modèle et j'oublie de supprimer le code de la casarrie. P>
Je vous suggère de vous débarrasser de ce rappel et d'utiliser Clean ASYNC-Await. En utilisant ces codes sera également plus court. Et je pense que cela fonctionnera. Essayez ceci.
p>
export async function createProduct(req, res) { try{ console.log("Execution") const product = new Product({...req.body}) let result = await product.save() console.log("created",result) return res.send({ product }) }catch(err){ const errorResponse = {} for (let key in err.errors) { if (err.errors[key].properties) { errorResponse[key] = err.errors[key].properties.message } else { errorResponse[key] = err.errors[key].toString().split(":")[1] } } return res.status(400).send({ ...errorResponse }) } }
En supposant que vous sachiez que si vous enregistrez les produits comme celui-ci, tous les mots-clés du req.body code> doivent être identiques que dans le produit code> Schéma.
Cela devrait fonctionner:
exports.createProduct = async (req, res) => {
try{
const product = new Product(req.body).save();
return res.json(product);
}catch(err){
const errorResponse = {}
for (let key in err.errors) {
if (err.errors[key].properties) {
errorResponse[key] = err.errors[key].properties.message
}
else {
errorResponse[key] = err.errors[key].toString().split(":")[1]
}
}
return res.status(400).send({ ...errorResponse })
}
}
Montrez qu'est-ce que vous avez transmis
{... req.body} code> s'il vous plaît.