javascript - meteor : "ReferenceError: myAdminHookFunction is not defined"

标签 javascript meteor iron-router router referenceerror

已关注 Meteor Tutorial作者:马修·普拉茨。

在第 4 章中,4.2.5 Force Login ,当我实现代码时,出现以下错误:

Your app is crashing. Here's the latest log.


/Users/TXC/.meteor/packages/meteor-tool/.1.1.3.1wysac9++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245
                        throw(ex);
                              ^
ReferenceError: myAdminHookFunction is not defined
    at app/both/router.js:31:23
    at app/both/router.js:33:3
    at /Users/TXC/code/foosboom-meteor/.meteor/local/build/programs/server/boot.js:222:10
    at Array.forEach (native)
    at Function._.each._.forEach (/Users/TXC/.meteor/packages/meteor-tool/.1.1.3.1wysac9++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
    at /Users/TXC/code/foosboom-meteor/.meteor/local/build/programs/server/boot.js:117:5
Exited with code: 8
Your application is crashing. Waiting for file change.

更新:一切工作正常,直到我按照 list 4.26:both/router.js 中的建议更新代码。

更新2:这是router.js文件的内容:

Router.configure({
  layoutTemplate: 'layout',
  loadingTemplate: 'loading'
});

Router.route('/', {
  name: 'games',
  waitOn: function(){
    return [Meteor.subscribe("games"), Meteor.subscribe("teams")];
  }
});

Router.route('/teams', {
  waitOn: function(){
    return Meteor.subscribe("teams");
  }
});

var requireLogin = function(){
  if(!Meteor.user()){
    if(Meteor.loggingIn()){
      this.render("loading");
    } else {
      this.render("accessDenied");
    }
  } else {
    this.next();
  }
}

Router.onBeforeAction(requireLogin);

我检查了我的代码三遍,但没有看到出了什么问题:知道吗?

最佳答案

看起来该教程中有一个拼写错误:

Router.onBeforeAction(myAdminHookFunction, {
 only: ['admin']
 // or except: ['routeOne', 'routeTwo']
});

应该看起来像这样:

Router.onBeforeAction(requireLogin, {
 only: ['admin']
 // or except: ['routeOne', 'routeTwo']
});

因此 myAdminHookFunction 应替换为 requireLogin

关于javascript - meteor : "ReferenceError: myAdminHookFunction is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462615/

相关文章:

javascript - 多个字符串的单个 XPath?

javascript - 为流媒体服务器正确拆分 MPEG-1 Layer 3

javascript - 在 Emberjs 中删除记录后模型不会更新

meteor - 如何获取selectedItem并同时处理按钮单击事件?

javascript - 向 IE9 添加 CSS 的小书签问题

amazon-s3 - 如何使用 meteor 将图像从 FileReader 上传到 Amazon s3

javascript - 通过 Meteor 更新 KineticJS Canvas 元素

meteor - 如何正确使用iron-router的waitOn路由选项?

javascript - 路由器不等待订阅

javascript - meteor 发现不返回数据