2017-03-24 6 views
0

Ich arbeite an dem Projekt mit node.js mit dem express.js-Framework und zeige die Engine auf "ejs". Die Projektfunktionen lauten wie folgt:
1. Ermitteln Sie eine Eingabe von einem Benutzer.
2. Senden Sie die Anfrage über die Eingabe an die API der Website.
3. Drucken Sie die bestimmten Daten von dieser API (einschließlich der ID, die später verwendet werden soll).
4. Wenn der Benutzer auf das Element (das ist ein "a" -Tag) in der Liste der oben genannten Daten klickt - verwenden Sie die ID dieses Elements, um eine weitere Anfrage an die gleiche Website zu senden, um genauere Informationen über die zu erhalten Artikel.Eine Variable aus der .ejs-Datei an express.js übergeben

Ich stecke bei Schritt 4. Und die Frage ist:
Wie diese ID aus der .ejs-Datei zu senden Anfrage in node.js, wenn der Benutzer auf das Element klickt?
Die andere Möglichkeit ist einfach: response.render ("Ansichtsname", {nodeJsVar: ejsVar}); Aber wie kann man es zurückgeben?
Danke für die Hilfe!

Antwort

3

Zu allererst Sie keine Daten senden kann „aus der .ejs Datei“ - was Sie tun können, ist es aus dem Browser zu schicken , das hat einen gerenderten HTML (und möglicherweise JavaScript) und nicht EJS.

Sie können es mit einigem clientseitigem JavaScript tun, in welchem ​​Fall Sie tun können, was Sie wollen.

Sie können dies tun, indem Sie den Wert der Variablen in eine URL als Routenparameter oder Abfrageparameter einbetten, wenn Sie die Standardverbindungen <a href="..."> verwenden.

Sie können eine ausgeblendete Eingabe in ein Formular einfügen, wenn Sie Formulare und Schaltflächen verwenden.

Sie können es in einen beliebigen Teil der Anfrage einfügen, wenn Sie AJAX verwenden.

nur sicherstellen, dass Sie wissen, was was ist, weil es verwirrend sein kann - hier X ein Pfad Parameter:

http://localhost/something/X 

und hier X ist ein Abfrageparameter:

http://localhost/something?x=X 
0

versuchen, diese (vorausgesetzt, Sie verwenden jQuery):

$.ajax({ 
    url: '/routename_to_handle_id', 
    type: 'POST', 
    data: { id: id } 
}).done(function(response){ 
//callback to handle if it's successful 
}) 
Verwandte Themen