2016-07-07 8 views
0

übergeben werden Ich versuche, POST einige Werte unter Verwendung meiner HTML Form zu einer node JS Methode. Danach muss ich das Rückgabeergebnis von NODE JS zurücksenden und es auf der Seite HTML anzeigen.Wie Werte von Knoten JS zu Html mit EJS

Ich verwende auch EJS, um die Werte an das Formular zurückzusenden. Das Ergebnis wird jedoch nicht angezeigt.

Grundsätzlich, nachdem der Benutzer auf die Schaltfläche Senden im HTML-Formular geklickt hat, sollten die Werte an verarbeitete Knoten-Js übergeben und ein Ergebnis Success oder failed an das HTML-Dokument zurückgeschickt werden, wo es angezeigt wird.

Mein Code ist wie folgt:

HTML-Code:

  <form id="form-register" action="http://localhost:8089/ttt"" method="post" enctype="multipart/form-data"> 

      <input type="logintext" value="" name="nam" class="nameC" id="mc" > 



      <input type="submit" name="subscribe" id="mc-submit-number"> 

      <label >REEEEE <%= titles %></label> 

      </form> 

NODE JS Code:

app.post('/ttt', function (req,res){ 

loginProvider.signUp(params, function(err, data) { 
    if (err) { 

     res.render('index',{title: 'HOME',titles:err.stack 
     }); 
     res.send('WHATTT'); 
    } 
    else { 
     console.log('Result ' + data);   // successful response 
     res.render('index',{title: 'HOME',titles:'SUCCESS' 
     }); 
     res.end('xzxzxzxzxzx'); 
    } 

}); 

} 
+0

Versuchen Hinzufügen Körper-Parser, wie erwähnt [hier] (http: // Stackoverflow .com/fragen/24800511/express-js-form-daten). – flott

+0

irgendwelche spezifischen Fehler? ... haben Sie Browser Konsole/Debugger für Fehler ausgecheckt und warum brauchen Sie send() und end() ..die Antwort wird bereits gesendet ... – Nikhil

+0

Bereits versucht, Body-Parser hinzufügen. Funktioniert nicht. Es wird kein Fehler in den Chrome Developer Tools gemeldet. – Illep

Antwort

0

Sie könnten (oder besser gesagt müssen) AJAX verwenden.

Anschließend können Sie Ihre Formularparameter per Postanforderung manuell an Ihren Node-Server senden und ein Antwortobjekt entweder mit einer Fehler- oder einer Erfolgsmeldung zurücksenden.

0

Der Grund, warum Ihr Code nicht funktioniert, liegt darin, dass Sie das DOM der HTML - Seite bereits geladen haben und wenn Sie diese Anfrage machen, ist die einzige Möglichkeit für EJS, die Seite neu zu laden, da EJS gerade durch Ihre Datei und Zeichenkette ersetzt

Meine beste Lösung ist, einen normalen AJAX-Aufruf zu Ihrem '/ ttt' zu haben und die Node.js eine 'res.send ("SUCCESS");' und in Ihrem HTML können Sie das Etikett oder einen Teil Ihrer Dokumentseite auf "SUCCESS"

Mit JQuery

$.post("/ttt", function(data, status){ 
    $("#yourLabel").text(data); 
});