如何使用 EJS 文件从 NodeJS 服务器检索完整 JSON
How to retrieve full JSON from NodeJS server using EJS file
我创建了一个 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:
如果您只关心显示数据而不关心任何格式和突出显示,您可以简单地执行
res.send({data1: data1, data2: data2, data3: data3})
我假设您看到的是 [object Object]
或与您的代码类似的内容,尽管我对 ejs 不是很了解,但我敢猜测您必须自己遍历该对象,并且在遍历过程中生成相关的 HTML 代码。这样您就可以根据自己的喜好进行漂亮的打印和突出显示。
res.json({ data1: data1, data2: data2, data3: data3 });
是向客户端发回基于 JSON 的响应的推荐方式。
我创建了一个 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:
如果您只关心显示数据而不关心任何格式和突出显示,您可以简单地执行
res.send({data1: data1, data2: data2, data3: data3})
我假设您看到的是 [object Object]
或与您的代码类似的内容,尽管我对 ejs 不是很了解,但我敢猜测您必须自己遍历该对象,并且在遍历过程中生成相关的 HTML 代码。这样您就可以根据自己的喜好进行漂亮的打印和突出显示。
res.json({ data1: data1, data2: data2, data3: data3 });
是向客户端发回基于 JSON 的响应的推荐方式。