J'ai configuré une application Web de base.js Web-application à l'aide d'Express avec le moteur de moteur de vue par défaut.
Lorsque l'utilisateur charge d'abord la page, les éléments suivants se produisent P>
app.post('/', function(req, res){ console.log(req.body.list); res.redirect('back'); // I imagine the code needs to go here and look somewhat like the following // // res.?update-view({ // mode: "admin" // }); });
3 Réponses :
Je ne suis pas vraiment sûr de ce que vous êtes après, mais s'il met à jour la page avec les résultats d'un appel AJAX (qui ne rafraîchit pas ou ne rechargez pas la page), vous devrez utiliser JavaScript côté client . charge () ou post () devrait pouvoir gérer cela. P>
Alternativement, si vous n'utilisez pas AJAX, mais effectuez un formulaire normal Soumettre, vous avez quelques options. Un, vous pouvez conserver votre redirection dans et utiliser Sessions System pour déterminer ce qui est Utilisé pour la demande d'obtention ou deux, vous pouvez remplacer la redirection avec un autre RES.Render de la page Index.jade et inclure la variable que vous souhaitez modifier. P>
Il faut comprendre qu'après l'une de ces personnes, Node.js abandonne le contrôle de la page Web sur le navigateur, sauf si vous avez spécifiquement configuré l'architecture pour la communication. Il n'y a actuellement aucun contrôle dans Node.js pour forcer les mises à jour ou les modifications de la page au client. Sauf via des connexions de socket ou sauf interrogation contraire par le client lui-même (comme dans le premier exemple impliquant JQuery). P>
Vous pouvez utiliser quelque chose comme ce qui suit ou si vous souhaitez utiliser un appel AJAX, utilisez JQuery Ajax tant qu'il existe une réponse
app.get('/ajax', function(req, res){
//This is where your code and response go
});
En supposant que vous souhaitez afficher la même page, avec d'autres "MODE"
// set the page title for all requests app.locals({ title: 'Test' }); // GET request app.get('/', function(req, res){ res.render('index', { // displays the default "user" mode mode: 'user' }); }); // when POST is submited app.post('/', function(req, res){ // this is the param given by the user console.log(req.body.list); // now render the same page res.render('index', { // with mode set to the the given parameter mode: req.body.list }); });
Qu'est-ce que vous essayez exactement d'atteindre? La seule solution que je vois consiste à mettre à jour l'interface graphique à l'aide du code côté client (avec des données rendues de votre post-gestionnaire express)