0
votes

NODEJS ReposFul API Res retourne un résultat précédent (toujours un pas en arrière)

Demander une liste de la base de données MongoDB, je reçois mes derniers résultats au lieu des derniers résultats à la place des mises à jour.

J'ai essayé:

  • appelant à partir de différents clients (navigateur Web, postman et vscode's Client-Client)
  • Ajout d'ASYNC / AWAIT
  • res.Send au lieu de res.json
  • Modification des versions de mangouste

    Exemple: xxx

    ou xxx

    attendu que la console.log (résultat) et res .json (résultat) sera similaire

    résultat réel est que, dans res.json (résultat), les données sont toujours une étape derrière (comme si elle se lit dans le cache ou un instantané précédent).

    Tout conseil serait apprécié (:

    codage heureux!


4 commentaires

Vous n'avez pas besoin de faire attendre console.log (résultat) Avez-vous essayé de simplement l'enregistrer sans le attendre ?


Le résultat réel est que dans res.json (résultat), les données sont toujours une étape derrière. Vous voulez dire res.json (résultat) est exécuté après la console.log (résultat)


@Intellidroid Je sais, ignorez-le - était juste hors de frustration (: n'effectue rien


@Yilmaz Ce que je veux dire, c'est si j'avais 2 éléments dans les résultats et j'ai supprimé un, le prochain appel donne 1 résultat dans la console mais 2 dans res.json, le prochain appel, je vais obtenir 1


3 Réponses :


0
votes

Une seule question est votre console.log montrant le résultat correct. Si oui pouvez-vous essayer le code ci-dessous

exports.get_users_list = (req, res) => {
  User.find().then((users) => {
    console.log(users);
    res.status(200).send(users)
  }).catch(err => res.status(400).send(err));
};


3 commentaires

J'ai essayé la méthode d'analyse et j'ai obtenu: SyntaxError: Jeton inattendu F dans Json en position 4 à Json.Parse ()


Vous n'avez pas à JSON.PARSE VOTRE Résultat (oublié à ce sujet ....). J'ai édité le code ci-dessus. Cela devrait fonctionner dans votre cas


Salut @walter, merci pour votre aide, mais cela donne les mêmes résultats. J'ai toujours besoin d'envoyer la demande une seconde fois pour obtenir la bonne réponse



0
votes

Essayez d'ajouter {nouveau: vrai mot-clé, ça fonctionnera. Exemple: attendre plainte.findbyIdandupdate (plaindide, plainte data, {nouveau: vrai});


1 commentaires

J'ai ajouté le {nouveau: true} à trouver () Le résultat est le même problème d'origine que cette fois-ci, il donne une matrice vide à la place):



0
votes

Il semble être mon configuration défectueuse express, Écrire à partir de Scratch Express en utilisant mes méthodes d'origine la résout. (était beaucoup plus rapide puis déboguer pour moi) Merci encore!


0 commentaires