2017-07-13 4 views
0

Ich lerne NodeJS, dafür habe ich eine gute Reihe von Turtorials gefunden. Im Moment lehrt es mich über einen guten Rahmen namens Express. Um Express zu verwenden, müssen Sie auch ejs lernen. Zum Glück decken die Turtorials das auch. Ich weiß jetzt, dass man im Grunde JavaScipt Objektwerte wie folgt einbetten:Verwenden von Funktionen in Express (NodeJS-Framework)

<div><%= valueKey %></div> //Here I have embedded valueKey 

Und Sie können auch Dinge tun, mit Schleifen wie folgt aus:

<ul><% (for var i=0; i<5; i++){ %> 
    console.log(i) 
<% } %></ul> 

Was ich aber nicht gelernt haben, ist, wie Sie kann andere javascript Funktionalitäten mit ejs/express benutzen. Wie Ereignisse zum Beispiel. Und da dies für das Erstellen einer Website unerlässlich ist, frage ich mich, ob das überhaupt möglich ist. Also meine Frage ist im Grunde: Ist es möglich, die gleichen Dinge mit Express wie mit normalen Front-End-Javascript zu tun? Und wenn ja, hat jemand eine gute Verbindung, die mir erklären könnte, wie es funktioniert?

+0

Im Allgemeinen haben Sie im Node keinen Zugriff auf DOM und Browser-Ereignisse. Auch "ejs" ist nur eine von vielen Template-Engines. (Sie müssen es nicht lernen, um Express zu verwenden) – TLJ

Antwort

0

EJS ist eine Vorlagensprache. Das Ziel der Vorlagensprache ist es, zu beschreiben, wie die Ansicht aussehen soll. Das bedeutet, Sie sollten keine Geschäftslogik in ihnen tun. Die einzige Logik, die Sie in EJS verwenden sollten, sind diejenigen, die die Ansicht beeinflussen. Zum Beispiel wird die von Ihnen bereitgestellte for-Schleife oder eine if-Anweisung, die angibt, ob Daten nicht vorhanden sind oder nicht zu einer Anforderung passen, den Teil, der die Daten anzeigt, nicht darstellen. Der folgende Code besagt, dass nur die Label-Gefahr auf die Seite gesetzt wird, wenn mehr als 0 ungelesene Fehlermeldungen vorliegen.

<%if (unreadErrorNumber>0){%> 
    <span class="label label-danger"><%=unreadErrorNumber%></span> 
<% } %> 

sollten Sie die Daten manipulieren und andere Logik in Knoten und dann in EJS Pass für das Rendern und nur Rendering.

app.get("/index", (req, res, next) => { 
    //Do what it takes to get the correct unreadErrorNumber. 
    let errorCount = modification(databaseStuff()); 
    res.render("index", unreadErrorNumber:errorCount); 
}) 
Verwandte Themen