7
votes

Comment mettre à jour un modèle de jade formulaire un message Ajax?

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"
    // });
});


1 commentaires

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)


3 Réponses :


4
votes

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.

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.

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).


0 commentaires

0
votes

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

Client STRY> P>

app.get('/ajax', function(req, res){
 //This is where your code and response go
});


0 commentaires

1
votes

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
  });
});


0 commentaires