Wie wird ein Array in einer EJS-Vorlage nach einem AJAX-Aufruf (mit ExpressJS) ordnungsgemäß durchlaufen?

8

Ich versuche also, ein Array von Objekten, die ich von einem http-Aufruf erhalten habe, mit meiner internen API zu durchlaufen, indem ich das request -Modul / -Paket verwende. Bis jetzt bin ich in der Lage, meine Daten von der API zurück zu bekommen und das vollständige Objekt auf meiner Seite ANZEIGEN. Ich möchte es auf meiner Seite anzeigen und mit dem EJS-Templating-System durchlaufen. Ich weiß, dass ich AngularJS für Frontend-Sachen verwenden kann, aber ich würde gerne sehen, wie weit ich nur mit der Serverseite gehen kann.

Also unten ist mein Code:

server.js

%Vor%

api.js

%Vor%

routes.js

%Vor%

reports.ejs
Wenn ich also einfach das gesamte reports -Objekt wie dieses <p><%= reports %></p> auf meiner Seite ausgibt, funktioniert alles gut und ich bekomme so etwas:

%Vor%

Aber wenn ich versuche, das Objekt wie unten gezeigt durchzulaufen, erhält es eine UNDEFINED als Rückgabeeigenschaft meines report -Objekts, und ich bekomme anscheinend eine Endlosschleife.

%Vor%

Ich habe eine andere Variante der Schleife versucht, aber ich bin immer noch nicht erfolgreich:

%Vor%     
AllJs 04.07.2016, 07:29
quelle

2 Antworten

5

Die Syntax für die for -Schleife in ejs ist perfekt, aber der Name des iterierten Arrays lautet reports und Sie scheinen in der Iteration report [i] zu verwenden , was als reports [i] geändert werden muss, was funktionieren sollte.

reports.ejs

%Vor%

Hoffe, das hilft.

    
SUNDARRAJAN K 14.07.2016 10:36
quelle
0

Async ist ein Dienstprogrammmodul, das einfache, leistungsstarke Funktionen für das Arbeiten mit asynchronem JavaScript bereitstellt. Obwohl ursprünglich für die Verwendung mit Node.js entworfen und über

installierbar

npm install --save async

Zur Dokumentation besuchen Sie Ссылка

Beispiele

%Vor%     
eGhoul 09.07.2016 20:05
quelle

Tags und Links