我创建了一个NodeJS服务器,它使用EJS文件将JSON数据发送到前端。我想要的只是我从三个API中获取的JSON代码将显示在前端(localhost)。
当我执行类似<h1><%= data2[0]['id'] %></h1>
的操作时,它可以工作,但这只能给我一小部分我需要的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:
答案 0 :(得分:0)
如果您只关心在没有任何格式化和突出显示的情况下显示数据,您只需执行
即可 res.send({data1: data1, data2: data2, data3: data3})
我假设您正在看[object Object]
或与您的代码类似的东西,即使我对ejs知之甚少,我也猜测你必须亲自遍历对象并生成遍历期间的相关HTML代码。通过这种方式,您可以精心打印并突出显示您心中的内容。
答案 1 :(得分:0)
res.json({ data1: data1, data2: data2, data3: data3 });
是向客户端发回基于JSON的响应的推荐方法。