繁体   English   中英

如何在Node.js代理中返回JSON?

[英]How do I return JSON in my Node.js proxy?

我不得不将请求代理到Dota 2 API。 经过一些研究,我找到了一种使用MEAN堆栈进行构建的API。 但是,我不知道如何从请求中返回数据。

这是我的节点服务器代码中的路线:

   router.get('/api/allheros', function (req, res) {
    Https.get('https://api.steampowered.com/IEconDOTA2_570/GetHeroes/v0001/?key=FB900D42DC33F4B4FCC62F6C7779BE5D', function (res) {
        var str = '';
        console.log('Response is ' + res.statusCode);

        res.on('data', function (chunk) {
            str += chunk;
        });

        res.on('end', function () {
            console.log(str); //This console logs all the heros correctly
        });

    });
});

控制台日志有效,但是我需要将数据返回到前端。

您需要做的就是将结果解析为JSON对象,然后使用res.json()将其发送回去。 如下修改您的代码,

router.get('/api/allheros', function (req, res) {
    Https.get('https://api.steampowered.com/IEconDOTA2_570/GetHeroes/v0001/?key=FB900D42DC33F4B4FCC62F6C7779BE5D', function (response) {
        var str = '';
        console.log('Response is ' + response.statusCode);

        response.on('data', function (chunk) {
            str += chunk;
        });

        response.on('end', function () {
            res.json(JSON.parse(str)); 
        });

    });
});

注意:必须将内部函数中的res更改为response以便它不会掩盖外部函数的res参数。

暂无
暂无

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

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