繁体   English   中英

如何使用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的响应的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM