私はCSVからd3.csvを使用してデータを抽出し、ejsにルーティングしています。node.jsのCSVから.ejsにデータを読み取る
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
});
});
});
コンソールに正しい出力が表示されます。 EJSで は、私が
<%= datap1[0]%>
で同じことを呼び出していますし、それは、[オブジェクトのオブジェクト]を示し 私はここで間違って何をしているのですか?
から、それを文字列として送信している間、私はにconsole.log変換を推測オブジェクトを文字列に渡します。同様に、例:datap1:JSON.stringify(data1)を使用できます。 – Dario
が機能しませんでした。何も表示されません... –
あなたの質問に答えるには:[object object]は、あなたのオブジェクトの.toString()が呼び出されたことを意味し、これが出力されます。あなたはオブジェクトが.toString()をオーバーライドしないので、デフォルトのObject.prototype.toString()が呼び出されました。 Ejsはあなたが提供したものをレンダリングしました。あなたのケースではtoString()やそれ以上のものをオーバーライドする必要があります。文字列をejsに渡す前に。 – Dario