2016-08-12 3 views
1

EJSファイルを使用してJSONデータをフロントエンドに送信するNodeJSサーバーを作成しました。私が望むのは、フロントエンド(localhost)に表示される3つのAPIから取っているJSONコードです。 私は<h1><%= data2[0]['id'] %></h1>のようなことをすると動作しますが、それは私に必要なJSONのほんの一部です。EJSファイルを使用してNodeJSサーバーから完全なJSONを取得する方法

サーバコード:

var express = require('express'); 
var router = express.Router(); 
var request = require('request'); 
var app = express(); 

router.get("/", function(req, res){ 
var request = require('request-promise'); 
var data1; 
var data2; 
var data3; 


request("http://api1.com").then(function(body){ 
    data1 = JSON.parse(body); 

    return request("http://api2.com"); 
}) 
    .then(function(body) { 
     data2 = JSON.parse(body); 


     return request("http://api3.com"); 
    }) 
    .then(function(body){ 
     data3 = JSON.parse(body); 

     res.render("services.ejs", {data1: data1, data2: data2, data3: data3}); 
    }) 
}); 

module.exports = router; 

フロントエンド例:

<!DOCTYPE html> 
<html> 
<body> 

    <p><%= data1 %></p> 
    <p><%= data2 %></p> 
    <p><%= data3 %></p> 

</body> 
</html> 

これは、私はそれが見えるようにしたいと思うものですが、それはまた、限り段落または他の未整理の方法で可能性がありそれはAPIからの完全なJSONを持っています

enter image description here

答えて

0
res.json({ data1: data1, data2: data2, data3: data3 }); 

は、JSONベースの応答をクライアントに返信するための推奨方法です。

+0

これは正常に動作し、[オブジェクトオブジェクト]ページにはなりませんでした。それは私に完全なJSONを与えました。ありがとうございました – CtrlAltDelete

0

あなたが唯一のフォーマットせずにデータを表示し、ハイライト表示を気にした場合、あなたは単に私はあなたのコードと類似しており、私はいてもいない[object Object]か何かを見ていると仮定してい

res.send({data1: data1, data2: data2, data3: data3})

行うことができますejsについて非常に精通しています。私は、オブジェクトを自分自身でトラバースし、トラバーサル中に関連するHTMLコードを生成しなければならないと推測します。そうすれば、あなたはきれいに印刷し、心のコンテンツにハイライトすることができます。

+0

これはうまく行きましたが、[オブジェクトオブジェクト]が見つかりました。これをトラバースすることができます。 – CtrlAltDelete

関連する問題