2017-10-13 20 views
0

私は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]%> 

で同じことを呼び出していますし、それは、[オブジェクトのオブジェクト]を示し 私はここで間違って何をしているのですか?

+1

から、それを文字列として送信している間、私はにconsole.log変換を推測オブジェクトを文字列に渡します。同様に、例:datap1:JSON.stringify(data1)を使用できます。 – Dario

+0

が機能しませんでした。何も表示されません... –

+0

あなたの質問に答えるには:[object object]は、あなたのオブジェクトの.toString()が呼び出されたことを意味し、これが出力されます。あなたはオブジェクトが.toString()をオーバーライドしないので、デフォルトのObject.prototype.toString()が呼び出されました。 Ejsはあなたが提供したものをレンダリングしました。あなたのケースではtoString()やそれ以上のものをオーバーライドする必要があります。文字列をejsに渡す前に。 – Dario

答えて

0

クライアント側では、あなたが戻ってJSON.parseを(使用してオブジェクトに文字列を解析することができます)

とサーバ側

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

はい、私のコードは今のように正確に見えますが、自分のejsに何も表示されません... –

+0

** console.log(<%= datap1%>); **あなたのejsコードで...私はejsを見たい –

+0

console.logなし、<%= datap1 [0]%>) –

関連する問題