npm 请求在执行 body.{object} 时没有得到 json 响应

npm request not getting json response when doing body.{object}

所以我正在请求 twitch 以使用 npm 响应获取一些流媒体数据。

var express = require('express');
var router = express.Router();
var request = require('request');

/* GET users listing. */
router.get('/streams/:user', function(req, res, next) {

    request('https://api.twitch.tv/kraken/streams/' + req.params.user, function ( error, response, body) {
        if (!error && response.statusCode == 200)
        {
            res.send(body);
        } 
        else 
        {
            res.send(404);
        }
    });
});

module.exports = router;

当我执行 res.send(body) 时,它会将我的 json 对象返回到屏幕上。

{"_links":{"self":"https://api.twitch.tv/kraken/streams/allencoded","channel":"https://api.twitch.tv/kraken/channels/allencoded"},"stream":null}

所以我不想取回所有的东西,而是只取回自己 url。 然后我想我会做类似的事情:

res.send(body._links.self)

只返回一个空白屏幕。

如何只打印出自己url?

body 是一个字符串。您必须首先将其解析为 JSON:

res.json(JSON.parse(body)._links.self);

这个问题有点老了,但是,下面的问题似乎也更有帮助。在请求中,您可以传递 json: true 并请求库 returns 您 json 对象。

替换下一行,

request('https://api.twitch.tv/kraken/streams/' + req.params.user, function ( error, response, body) {

和下面那个

request({'url':`https://api.twitch.tv/kraken/streams/${req.params.user}`, 'json': true }, function ( error, response, body) {