这是我的第一个Meteor程序,我正在尝试对Github进行http调用。我面临一个错误,如下所示:
调用'getUserInfo'传递结果异常:["click button"]/<http://localhost:3000/helloMeteor.js?823f404b37c246a7d23ae50a10c37969e426b2b8:18:17Meteor.bindEnvironment/<http://localhost:3000/packages/meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:983:17._maybeInvokeCallback@http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:3860:7.receiveResult@http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:3880:5._livedata_result@http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:4964:7连接/onMessage@http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:3275:7_launchConnection/self.socket.onmessage/<http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:2717:11_.forEach@http://localhost:3000/packages/undercore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:156:7._启动连接/self.socket.onmessage@http://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:2716:9SockJShttp://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:156:9SockJShttp://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:1141:5SockJShttp://localhost:3000/packages/ddp.js?d1840d3ba04c65ffade261f362e26699b7509706:1199:13SockJShttp://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;
}
});
//});
}
我使用的是Github API JavaScript包装器。即使我尝试使用简单的HTTP进行调用,我仍然会收到错误。
究竟需要做些什么来解决这个问题?
更新这是服务器日志:
调用方法"getUserInfo"ReferenceError时出现异常:未定义GitHubI20150429-19:22:53.064(5.5)?在[object object]。Meteor.methods.getUserInfo(app/helloMeteor.js:29:34)I20150429-19:22:53.064(5.5)?可能在AuditArgumentChecks(packages/ddp/livedata_server.js:1617:1)I20150429-19:22:53.064(5.5)?位于packages/ddp/livedata_server.js:648:1I20150429-19:22:53.064(5.5)?位于[object object]._。extend.withValue(packages/metro/dynamics_nodejs.js:56:1)I20150429-19:22:53.064(5.5)?位于packages/ddp/livedata_server.js:647:1I20150429-19:22:53.064(5.5)?位于[object object]._。extend.withValue(packages/metro/dynamics_nodejs.js:56:1)I20150429-19:22:53.064(5.5)?位于[object object]._。extend.protocol_handlers.method(packages/ddp/livedata_server.js:646:1)I20150429-19:22:53.064(5.5)?位于packages/ddp/livedata_server.js:546:1
好的,我建议你安装这个可爱的包:
meteor add bruz:github-api
根据我链接到的网页上的例子,它应该允许你在服务器端使用Github API
聊天后编辑:到目前为止,此软件包的自述文件已经过时。要像示例中所示那样使用此包,您需要调用this而不是require("github")
:
Npm.require('github-api');
那么示例的其余部分应该可以。应该很快提出拉取请求以请求更新。