2017-10-13 1 views
0

Ich extrahiere Daten aus einer CSV-Datei mit d3.csv und leite sie in ein ejs.Lesen von Daten in .ejs aus einer CSV in node.js

d3.csv("http://vhost11.lnu.se:20090/assig2/data1.csv", function(data) { 
    var data1 = data; 
    console.log(data1[0]); 

    app.get('/doctor', isLoggedIn, function(req, res) { 
     res.render('doctor.ejs', { 
      user : req.user, 
      datap1 : data1 
     }); 
    }); 
}); 

Die Konsole zeigt die korrekte Ausgabe an. In dem EJS, nenne ich das gleiche von

<%= datap1[0]%> 

und es zeigt [object object] Was ich hier falsch mache?

+1

Ich denke, console.log Konvertiten mit JSON.parse analysieren kann Objekt an eine Zeichenfolge übergeben. Ähnlich können Sie z. B. datap1: JSON.stringify (data1) verwenden. – Dario

+0

hat nicht funktioniert. zeigt nichts ... –

+0

Um Ihre Frage zu beantworten: [Objekt-Objekt] bedeutet, dass auf Ihrem Objekt .toString() aufgerufen wurde und dies ist es ausgegeben. Da das Objekt nicht überschrieben wird, wurde .toString() standardmäßig Object.prototype.toString() aufgerufen. Ejs hat nur das wiedergegeben, was du geliefert hast. Sie sollten toString() oder besser in Ihrem Fall überschreiben, um richtig Daten in z. Zeichenfolge vor dem Übergeben an ejs. – Dario

Antwort

0

Auf der Client-Seite Sie die Zeichenfolge zurück auf ein Objekt()

und während es als eine Zeichenfolge von der Seite Server sendet

app.get('/doctor', isLoggedIn, function(req, res) { 
     res.render('doctor.ejs', { 
      user : req.user, 
      datap1 : JSON.stringify(data1) 
     }); 
    }); 
}); 
+0

Ja, mein Code sieht jetzt genau so aus, aber ich sehe nichts in meinen ejs ... –

+0

hast du ** console.log (<%= datap1%>); ** in deinem ejs code ... Ich möchte die ejs sehen zu –

+0

keine console.log, nur <% = datyp1 [0]%>) –