0
votes

Comment réparer le retour "indéfini" de la fonction de recherche Mongoose / MongoDB

Je tente d'obtenir le résultat de MongoDB, puis de le transmettre à un const, mais de récupérer Vale de "non néglinée" où est-ce que je suis mal tourné?

Je me suis assuré que le code fonctionne sans retour et impression Pour consoler et assurez-vous que le jeu de données est présent dans mon MongoDB. p> xxx pré>

lorsque ce qui précède est exécuté, je reçois les sorties suivantes sur la ligne de commande p>

non définie p>

connecté à dB p>

puis il imprime les données suivantes qui sont les données de MongoDB P>

{ _id: 5ced1ce8aa89b60a7c2e34de,
  name: 'Blight',
  level: 4,
  school: 'N',
  time: [ { number: 1, unit: 'action' } ],
  range: { type: 'point', distance: { type: 'feet', amount: 30 } },
  components: { v: true, s: true },
  duration: [ { type: 'instant' } ],
  classes:
   { fromClassList: [ [Object], [Object], [Object], [Object] ],
     fromSubclass:
      [ [Object], [Object], [Object], [Object], [Object], [Object] ] },
  source: 'PHB',
  entries:
   [ 'Necromantic energy washes over a creature of your choice that you can see within range, draining moisture and vitality from it. The target must make a Constitution saving throw. The target takes {@dice 8d8} necrotic damage on a failed save, or half as much damage on a succ
essful one. This spell has no effect on undead or constructs.',
     'If you target a plant creature or a magical plant, it makes the saving throw with disadvantage, and the spell deals maximum damage to it.',
     'If you target a nonmagical plant that isn\'t a creature, such as a tree or shrub, it doesn\'t make a saving throw, it simply withers and dies.' ],
  entriesHigherLevel:
   [ { type: 'entries', name: 'At Higher Levels', entries: [Array] } ],
  page: 219,
  damageInflict: [ 'necrotic' ],
  savingThrow: [ 'constitution' ] }


0 commentaires

3 Réponses :


0
votes
const mongoose = require('mongoose');

function search(query) {
   return db.collection('spells').find({
    "name": query
  })
}

mongoose.connect('mongodb://localhost/dnd', {
  useNewUrlParser: true
});

const db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  console.log("Connected to DB" + "\n");       
  search("Blight").then(console.log);
});

0 commentaires

0
votes

Vous retournez actuellement les données à la promesse, mais votre fonction ne renvoie rien, vous pouvez renvoyer l'objet Array et traiter ultérieurement les résultats

async function search(query) {
  try {
    const search = await db.collection('spells').find({
      "name": query
    }).toArray();
    return search;
  } catch(err) {
    throw new Error(err);
  }
}


0 commentaires

0
votes

Après avoir reçu des conseils d'AVU à Freeenode / # Node.jode.js, j'ai examiné les promesses et j'ai proposé ce sloution. XXX


0 commentaires