2015-04-29 2 views
1

Это моя первая программа Meteor, и я пытаюсь сделать http-вызов Github. Я столкнулся ошибку, которая идет как это:MeteorJs - Ошибка в вызове http

Exception in delivering result of invoking 'getUserInfo': ["click button"]/<@http://localhost:3000/helloMeteor.js?823f404b37c246a7d23ae50a10c37969e426b2b8:18:17 Meteor.bindEnvironment/<@http://localhost:3000/packages/meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:983:17 [email protected]http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:3860:7 [email protected]http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:3880:5 [email protected]http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:4964:7 Connection/[email protected]http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:3725:7 ._launchConnection/self.socket.onmessage/<@http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:2717:11 [email protected]http://localhost:3000/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:156:7 ._launchConnection/[email protected]http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:2716:9 SockJShttp://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:156:9 SockJShttp://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:1141:5 SockJShttp://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:1199:13 SockJShttp://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:1346:9

Вот мой код:

if (Meteor.isClient) { 
// counter starts at 0 
Session.setDefault('counter', 0); 

Template.hello.helpers({ 
    counter: function() { 
     return Session.get('counter'); 
    } 
}); 

//This is how you bind event handlers 
//Format: eventtype selector 
Template.hello.events({ 
    'click button': function() { 
     // increment the counter when button is clicked 
     Session.set('counter', Session.get('counter') + 1); 
     Meteor.call('getUserInfo', 'rutwick', function(err, res) { 
      console.log(result); 
     }); 
    } 
}); 
} 

if (Meteor.isServer) { 
//Meteor.startup(function() { 
    // code to run on server at startup 
    Meteor.methods({ 
     getUserInfo: function(userN) { 
      var github = new GitHub({ 
       version: "3.0.0", // required 
       timeout: 5000  // optional 
      }); 

      var result = github.user.getFollowingFromUser({ 
       user: userN 
      }); 

      return result; 
     } 
    }); 
//}); 
} 

Я использую API GitHub JavaScript обертка. Даже если я попытаюсь сделать вызов, используя простой HTTP, я все равно получаю сообщение об ошибке.

Что именно нужно сделать, чтобы решить эту проблему?

Update Вот лог-сервер:

Exception while invoking method 'getUserInfo' ReferenceError: GitHub is not defined I20150429-19:22:53.064(5.5)? at [object Object].Meteor.methods.getUserInfo (app/helloMeteor.js:29:34) I20150429-19:22:53.064(5.5)? at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1) I20150429-19:22:53.064(5.5)? at packages/ddp/livedata_server.js:648:1 I20150429-19:22:53.064(5.5)? at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) I20150429-19:22:53.064(5.5)? at packages/ddp/livedata_server.js:647:1 I20150429-19:22:53.064(5.5)? at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) I20150429-19:22:53.064(5.5)? at [object Object]._.extend.protocol_handlers.method (packages/ddp/livedata_server.js:646:1) I20150429-19:22:53.064(5.5)? at packages/ddp/livedata_server.js:546:1

+0

Можем ли мы иметь выход на консоль Chrome (это лучше), и если это применимо, журнал сервера тоже? – SylvainB

+0

Aha, журнал сервера. Я не знал, что есть журнал сервера. Вывод, который я опубликовал, находится на консоли FireBug. Обновление моего вопроса в журнале сервера. –

+0

Не стоит беспокоиться :) Показывать только журнал сервера, если он применяется. Но я не могу достаточно подчеркнуть использование Chrome * по крайней мере * для просмотра консольных журналов, остальные консоли просто выплюнули глупости ... по крайней мере, для Метеор. – SylvainB

ответ

1

Хорошо, я советую вам установить this lovely package:

meteor add bruz:github-api 

Это позволит вам использовать GitHub API на сервере в соответствии с примером на веб-странице, с которой я связан.

Редактирование после чата: До сих пор readme этого пакета устарел. Для того, чтобы использовать этот пакет, как показано в примере, вы должны назвать это вместо require("github"):

Npm.require('github-api'); 

Тогда остальные примера должны быть хорошо. Должен сделать запрос на вытягивание в ближайшее время, чтобы попросить обновление.

+0

Спасибо, что указали это, но мой журнал сервера показывает что-то еще. И исправление этого дает мне неопределенное. –

+0

Я думаю, мне нужно потребовать пакет github. Я попробовал 'require', но теперь сервер говорит, что' require' не определено. –

+0

Отредактировал свой ответ. – SylvainB

Смежные вопросы