1

ここでバッジキットのチュートリアルに従おうとしています https://github.com/mozilla/badgekit-api/wiki/Using-BadgeKit-API#references

ただし、発生しているエラーは、構文のノード エラーです (と思います)。これは、ファイル RetrieveBadgeData.js にあるものです

var http = require("http");
var jws = require('jws');

var claimData = {
    header: { typ: 'JWT', alg: 'HS256' },
    payload: {
        key: 'mastersecret',
        exp: Date.now() + (1000 * 60),
        method: 'GET',
        path: '/systems'
    },
    secret: 'mastersecret'
};
var requestOptions = {
    host: 'http://192.168.1.59:8080',
    path: '/systems',
    method: 'GET',
    headers: { 'Authorization': 'JWT token="' + jws.sign(claimData) + '"' }
};

var apiRequest = http.request(requestOptions, function (apiResult) {
    apiResult.on('data', function (badgeData) {
        //process badgeData

    });
});

192.168.1.59:8080 を参照すると、ノード API が実行されている場合に返されるはずのものを取得できますが、ノード RetrieveBadgeData.js を実行すると (上記のコードを実行すると)、このエラーが発生します。

events.js:72
    throw er; // unhandled 'error' event
          ^
Error: getaddrinfo ENOTFOUND
    at errnoException (dns.js:37:11)
    at Object.onanswer [as oncomplete] (dns.js:124:16)

何か案は?

編集 これも試しましたが、同じエラーが発生します

var requestOptions = {
    hostname: 'http://192.168.1.59'
    , port: 8080
    , path: '/systems/badgekit/badges'
    , method: 'GET'
    , headers: { 'Authorization': 'JWT token="' + jws.sign(claimData) + '"' }
};
4

1 に答える 1

2

問題は、ホストを指定する方法です。

host: 'http://192.168.1.59:8080'

代わりにこれを使用してください:

hostname: '192.168.1.59`,
port: 8080

http://プロトコルであり、ホストではありません。表示されるエラーは、指定したホスト名を Node.js が解決できないというものです。Node.jsのドキュメントでは、 の使用がhostnameよりも優先されることも示唆されていますhost

于 2014-09-30T18:55:01.700 に答える