2016-05-17 1 views
2

2つの異なるソースからのデータを使用しようとしていますが、EJS、JSおよびノー​​ドを使用して同じHTMLページでそれらをレンダリングしようとしています。 これは私が何をしようとしています..ですEJSで複数のソースをレンダリングすることができます

app.set('view engine', 'ejs'); 
app.get('/', function(req, res) { 
    res.render('index.ejs', { data: JSONdata }) 
    res.render('index.ejs', {data2: arrayData}) 
}); 

データはJSONで、DATA2は配列です。私はこの正確なプロセスの正しい構文を調べようとしましたが、何も見つけられないようです。

多くのありがとうございます。

答えて

2

1回のリクエストで複数回レンダリングすることはできません。

しかし、JSONデータと配列データを単純に組み合わせて文字列にすることはできます。

App.set('view engine', 'ejs'); 
app.get('/', function(req, res) { 
    res.render('index.ejs', JSON.stringify({data2: arrayData, data1: JSONdata})) 
}); 

それとも、単に1つのオブジェクトに両方の変数を割り当てて、あなたは、単一の要求に対して複数回レンダリングできないレンダリング機能

var returnVals= JSON.stringify({data2: arrayData, data1: jsonData}); 
+0

ありがとう、これは働いた!今私はarrayDataにデータをプッシュしていることに気付いていますが、EJSはデータをarrayDataにプッシュする前にページをレンダリングしています。 – TheGirl440

+0

あなたはどういう意味が分かりませんか?もう少し詳しくこの問題に関する別の質問を投稿できますか?また、この答えがあなたを助けた場合、それを受け入れる必要があります:) @ TheGirl440 – James111

+0

@ James111:こんにちは、私はあなたの答えを見つけた、私はこれを持って[質問](http://stackoverflow.com/questions/37616719/pass-a-variable -from-javascript-to-ejs)はすでに答えられていますが、私は更新しました。別のファイルで2つの 'res.render'メソッドを呼び出す方法を知りたいのですが解決策があれば、もちろんアップアップします。 – George

1

にそれを解析します。あなたのようなさまざまな種類のデータを表示したい場合は

は、しかし:

SSCResult.find({username:username},function (err, results) { 
 
    var username=req.user.username; 
 
    var fullname =req.user.firstname+' '+req.user.lastname; 
 
    if (err) return console.error(err); 
 

 
    console.log(results); 
 

 
    res.render('sscandhsc',{fullname:fullname,results}); 
 
    
 
});

SSCResultはスキーマです。その結果はそう

[ { _id: 59f61fe2fec3cc7bf804f95e, 
 
    examtype: 'HSC', 
 
    username: '1', 
 
    __v: 0, 
 
    gpa: '5.00', 
 
    institution: 'New Govt. Degree College, Rajshahi', 
 
    passedyear: '2013', 
 
    board: 'Rajshahi' }, 
 
    { _id: 59f6408efec3cc7bf804fc78, 
 
    examtype: 'SSC', 
 
    username: '1', 
 
    __v: 0, 
 

 
    gpa: '5.00', 
 
    institution: 'Taragunia High School', 
 
    passedyear: '2011', 
 
    board: 'Jessore' }, 
 
    { _id: 59f656a9fec3cc7bf8050146, 
 
    examtype: 'JSC', 
 
    username: '1', 
 
    __v: 0, 
 
    gpa: '5.00', 
 
    institution: 'Taragunia High School', 
 
    passedyear: '2008', 
 
    board: 'Jessore' } ]

のようなものです「結果」とフルネームは、JSONの異なる種類で、あなたもそれを送ることができます。

最後に、上位(1)解決策も同じ形式のjsonファイルです。 ありがとうございます。それがあなたを助けることを願っています。 :)

関連する問題