2017-10-18 4 views
0

J'utilise node.js/express, et j'ai une vue avec un formulaire dessus - ce formulaire POST à ​​un itinéraire, qui renvoie ensuite json. Je voudrais (pour commencer au moins) envoyer mon formulaire, et avoir les données qui sont retournées être montré sous le formulaire (sur la même vue).Afficher les résultats d'un POST à ​​la page

Quelle est la meilleure façon de le faire de la manière la plus «express-y» possible?

Idéalement sans rafraîchissement de la page. Ajax fera ce que je suis après - mais est-ce une excellente façon de le faire?

Merci pour toute idée

+1

Vous avez besoin d'une langue côté client pour mettre à jour le contenu de la page sans actualisation, et étant donné que vous pouvez également récupérer les données avec AJAX, cela me semble parfait (en supposant que vous postiez les données via AJAX) . –

+1

Ajax va le faire, et ajax est le seul moyen de le faire sur la même page sans rafraîchissement (ou vous pouvez utiliser socket, mais pas vraiment la meilleure façon de gérer un formulaire) – sheplu

Répondre

2

Le strict minimum de ce que vous cherchez ressemblerait à quelque chose comme ceci:

côté client

fetch('your_endpoint', { 
    method: 'POST', 
     body: JSON.stringify(formData), 
    }).then((response) => { 
    // success 
    return response.json(); 
    }) 
    .then((data) => { 
    // add data to DOM 
    }) 
    .catch((error) => { 
    // failed to send 
    }); 
} 

côté serveur à l'aide express.js

router.post('/your_endpoint', (req, res, next) => { 
    // process request 
    res.status(200).json({ "data": your_data }); 
});