0

我刚开始使用 restify 并尝试构建一个非常简单的 JSONClient并在第一步失败。

var restify = require('restify');

var client = restify.createJsonClient({
    url: 'http://api.bgm.tv'
});
client.get('/calendar', function(err, req, res, obj) {
    console.log('%j', obj);
});

这段代码返回{}状态码 200

如果您在浏览器中检查http://api.bgm.tv/calendar或 curl 它似乎是一个合法的 json GET Rest API,不需要身份验证或其他任何东西。

我尝试了其他 API,例如 stackoverflow api,它运行良好,所以我认为服务器端有问题?

如果有人可以尝试运行它并帮助我指出可能出了什么问题,将不胜感激。

4

2 回答 2

1

我运行了您的示例节点代码并得到了正确的响应(与浏览时相同)。

您可能有一些版本问题或 console.log 大小限制。

尝试使用:console.log(obj[0]);它应该只打印 json 中的第一个对象。

我在 Mac 上使用节点 v0.8.9 和 restify v2.4.1。

于 2013-04-13T21:12:03.970 回答
0

是的,当我使用Chrome 的 Postman 插件并发出 GET 请求时,http://api.bgm.tv/calendar我得到:

[
    {
        "weekday": {
            "en": "Mon",
            "cn": "星期一",
            "ja": "月耀日",
            "id": 1
        },
        "items": [
            {
                "id": 46458,
                "url": "http://bgm.tv/subject/46458",
                "type": 0,
                "name": "アイカツ! -アイドルカツドウ!-",
                "name_cn": "偶像活动",
                "summary": "",
                "eps": 0,
                "air_date": "2012-10-08",
                "air_weekday": 1,
                "images": {
                    "large": "http://lain.bgm.tv/pic/cover/l/db/7f/46458_8mM39.jpg",
                    "common": "http://lain.bgm.tv/pic/cover/c/db/7f/46458_8mM39.jpg",
                    "medium": "http://lain.bgm.tv/pic/cover/m/db/7f/46458_8mM39.jpg",
                    "small": "http://lain.bgm.tv/pic/cover/s/db/7f/46458_8mM39.jpg",
                    "grid": "http://lain.bgm.tv/pic/cover/g/db/7f/46458_8mM39.jpg"
                },
                "collection": {
                    "wish": 0,
                    "collect": 0,
                    "doing": 44,
                    "on_hold": 0,
                    "dropped": 0
                }
            },
            {
                "id": 57150,
                "url": "http://bgm.tv/subject/57150",
                "type": 0,
                "name": "LINE OFFLINE ~サラリーマン~",
                "name_cn": "离线LINE - 上班族 -",
                "summary": "",
                "eps": 0,
                "air_date": "2013-01-07",
                "air_weekday": 1,
                "images": {
                    "large": "http://lain.bgm.tv/pic/cover/l/71/28/57150_Kz171.jpg",
                    "common": "http://lain.bgm.tv/pic/cover/c/71/28/57150_Kz171.jpg",
                    "medium": "http://lain.bgm.tv/pic/cover/m/71/28/57150_Kz171.jpg",
                    "small": "http://lain.bgm.tv/pic/cover/s/71/28/57150_Kz171.jpg",
                    "grid": "http://lain.bgm.tv/pic/cover/g/71/28/57150_Kz171.jpg"
                },
                "collection": {
                    "wish": 0,
                    "collect": 0,
                    "doing": 206,
                    "on_hold": 0,
                    "dropped": 0
                }
            },
            {
                "id": 58709,
                "url": "http://bgm.tv/subject/58709",
                "type": 0,
                "name": "ハヤテのごとく! Cuties",
                "name_cn": "旋风管家 Cuties",
                "summary": "",
                "eps": 0,
                "air_date": "2013-04-08",
                "air_weekday": 1,
                "images": {
                    "large": "http://lain.bgm.tv/pic/cover/l/15/28/58709_H7uj8.jpg",
                    "common": "http://lain.bgm.tv/pic/cover/c/15/28/58709_H7uj8.jpg",
                    "medium": "http://lain.bgm.tv/pic/cover/m/15/28/58709_H7uj8.jpg",
                    "small": "http://lain.bgm.tv/pic/cover/s/15/28/58709_H7uj8.jpg",
                    "grid": "http://lain.bgm.tv/pic/cover/g/15/28/58709_H7uj8.jpg"
                },
                "collection": {
                    "wish": 0,
                    "collect": 0,
                    "doing": 219,
                    "on_hold": 0,
                    "dropped": 0
                }
            },

...还有更多,但 SO 答案的正文限制为 30,000 个字符。

于 2013-04-13T20:30:16.360 回答