Comment écrire i frontend « ajax »

voix
0

En fait, je travaille sur un projet sur un site de mariage. Sur la page, j'ai créé une nouvelle section pour « profil récemment ajouté » .J'ai écrit le code dans le back-end, mais dans le frontend que dois-je écrire pour appeler le code back-end. Je l'ai utilisé la technique, mais cela ne fonctionne pas.

Code que je l'ai écrit dans le contrôleur

module.exports.recent = function(req, res) {
    User.find({}).sort('-created').limit(5).exec(function(err, data){
      if (err) 
      {
        return res.status(400).json({
           message: errorHandler.getErrorMessage(err)
         })
      }
      res.json(req.profile,{
        user: req.user || null,
        request: req,
        users: data
      });

    });

};

Le code que je l'ai écrit dans la route

app.route('/recent').get(users.recent);
Créé 02/09/2018 à 05:17
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Pour répondre à votre question de manière générale «comment dois - je appeler le code back - end du frontend? - vous ne le faites pas. Vous faites une demande à la route qui exécute votre code, puis renvoyer (probablement avec res.json) une réponse. Il n'y a pas moyen d'appeler directement le code, vous aurez donc besoin de faire une requête AJAX (que vous avez identifié).

Vous pouvez utiliser une ou deux choses. Le plus simple, si vous êtes sur un navigateur moderne, est une fonction fetch. fetchest une API de bas niveau pour faire appels AJAX du navigateur, et est intégré à la plupart des navigateurs modernes.

fetch('/recent')
  .then(res => res.json())
  .then(myResult => { /* do what you want with the result here */ })

Vous pouvez en apprendre davantage sur fetchde MDN: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

En raison fetchest assez faible niveau, il y a différents outils d' écrits sur elle pour rendre la vie plus facile. Ma préférence est axiosque vous pouvez en savoir plus sur à https://github.com/axios/axios . Le code suivant est l'équivalent avec axios:

axios.get('/recent')
  .then(res => res.data)
  .then(myResult => { /* do what you want with the result here */ })

axiosest vraiment dans son propre lorsque vous effectuez des requêtes plus complexes. Il prend en charge un paquet UMD via unpkg- il suffit de déposer <script src="https://unpkg.com/axios/dist/axios.min.js"></script>sur votre page HTML, et vous aurez accès à l' axioséchelle mondiale sur l'objet de la fenêtre.

Créé 02/09/2018 à 08:45
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more