J'essaie de sauvegarder le résultat de la recherche (), mais je n'ai aucune idée de savoir comment enregistrer ce résultat dans une variable. ci-dessous, je copie le schéma de produit p> Le doc est toujours nul et ne reçoit pas la valeur. p> en termes généraux, je voudrais obtenir le produit de réponse.findone à utiliser Une autre fonction, appelant par CreateSubscription () P> P>
3 Réponses :
Pour enregistrer le résultat de la recherche () est aussi simple que ceci:
async function createSubscription (req, res, next) { var doc = await product.findOne(); processDoc(doc); }
La raison est que vous appelez une fonction de rappel, ce qui signifie que la fonction est asynchrone. Il n'ya donc aucune garantie que votre requête s'exécutera et que les valeurs seront définies avant qu'elle ne atteigne,
const createSubscription = async function (params) { try { return await User.findOne(params) } catch(err) { console.log(err) } } const doc = createSubscription({"plans.id": product_id})
np. Si cela résout le problème, marquez-le comme le bon vote ou le vote.
Puisque vous voulez interroger quelque chose dans la base de données, cela signifie que vous avez déjà créé un et enregistré quelques données dedans.
Cependant, avant d'enregistrer des données dans la base de données, vous devez créer votre modèle qui doit être créé sous le dossier Modèles dans le produit.js (les noms de modèle doivent démarrer la lettre majuscule de la Convention). Ensuite, vous devez l'importer dans votre page ci-dessus pour y accéder. Vous voulez interroger par produit.Id mais quel identifiant du produit? P>
puisque vous avez app.js // réglage pour analyse (lecture ou accès) Req.body p> Nous pouvons atteindre Ceci devrait être votre code: P> req code> dans votre fonction, cela signifie que vous postez quelque chose. Si vous configurez les paramètres appropriés dans App.js, vous devriez pouvoir accéder à
req.body code> qui est l'information qui étant affichée par le côté client. P>
req.body.id code> p>
function createSubscription (req, res, next) {
try{
const product=Product.findOne({plan.id:req.body.id})
}
catch(error){console.log(error.message)} //every error object has message property
.
.
}
Bonjour Nilsonjr, plus de contexte est nécessaire pour aider. Pouvez-vous fournir tout le contenu pertinent? Il serait utile de voir où
produit code> appartient et quel est le schéma code> code>.
J'ai mis à jour le code
Duplicatésible possible de Pourquoi pourquoi Ma variable est-elle non altérée après que je la modifie à l'intérieur d'une fonction? - Référence de code asynchrone