如何在Meteor js的路由操作中使用Collection.find()

如何在Meteor js的路由操作中使用Collection.find(),meteor,iron-router,Meteor,Iron Router,我有一套密码 Router.configure({ layoutTemplate: 'master_layout' }); Router.map(function(){ this.route('generatePDF', { path: '/pdf', where: 'server', action: function() { console.log(voters.findOne().fetch()); var vo

我有一套密码

Router.configure({
    layoutTemplate: 'master_layout'
});


Router.map(function(){

    this.route('generatePDF', {
    path: '/pdf',
    where: 'server',
    action: function() {

        console.log(voters.findOne().fetch());
        var voters = voters.find();

    ....
    }
});
如何在路由的操作中使用任何给定集合

我得到的错误如下

W20160510-20:19:29.909(5.5)? (STDERR) TypeError: Cannot call method 'findOne' of undefined
W20160510-20:19:29.910(5.5)? (STDERR)     at [object Object].action (lib/routes.js:40:29)
W20160510-20:19:29.910(5.5)? (STDERR)     at boundNext (packages/iron_middleware-stack/lib/middleware_stack.js:251:1)

您的代码中有多个错误

首先,
投票者
控制台.log中是
未定义的
(如错误日志所示)。 其次,
vorters.findOne()
返回单个文档(假设您有一个名为
vorters
的集合)。不能对文档调用
fetch
。 您可以在光标上调用
fetch
。例如,
投票者.find().fetch()
就可以了


希望这对您的代码有帮助

首先,
投票者
控制台.log中是
未定义的
(如错误日志所示)。 其次,
vorters.findOne()
返回单个文档(假设您有一个名为
vorters
的集合)。不能对文档调用
fetch
。 您可以在光标上调用
fetch
。例如,
投票者.find().fetch()
就可以了

希望这能有所帮助

尝试以下方法:

action: function () {
    this.render('someTemplate',{
        data: function(){
            return Voters.find()
        }
    });
}
试试这个:

action: function () {
    this.render('someTemplate',{
        data: function(){
            return Voters.find()
        }
    });
}

看起来你还只是从《流星》开始。推荐使用的路由器是
kadia:flowrouter
,而不是
iron:router
。看起来你刚刚开始使用Meteor。建议使用的路由器是
kadia:flowrouter
,而不是
iron:router