【问题标题】:How to retrieve full JSON from NodeJS server using EJS file如何使用 EJS 文件从 NodeJS 服务器检索完整的 JSON
【发布时间】:2016-12-19 15:55:31
【问题描述】:

我创建了一个 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:

【问题讨论】:

    标签: json node.js ejs


    【解决方案1】:

    如果您只关心在没有任何格式和突出显示的情况下显示数据,您可以简单地做

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

    我假设您看到 [object Object] 或与您的代码类似的东西,即使我对 ejs 不是很了解,我也敢猜测您必须自己遍历对象并生成相关的 HTML遍历期间的代码。这样一来,您就可以随心所欲地打印和突出显示内容。

    【讨论】:

    • 这确实有效并产生了 [object object],我将能够遍历它。
    【解决方案2】:
    res.json({ data1: data1, data2: data2, data3: data3 });
    

    是向客户端发回基于 JSON 的响应的推荐方式。

    【讨论】:

    • 这确实有效,但没有导致 [object object] 页面。它给了我完整的 JSON。谢谢
    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 2016-05-30
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多