流星铁路由器中的findOne()返回undefined

时间:2015-10-19 16:46:39

标签: javascript mongodb meteor iron-router subscriptions

Mi浏览器将下一个错误抛给控制台

Uncaught TypeError: Cannot read property 'name' of undefined  router.js:16

当我尝试运行此代码时:

///////////////////////////////////
// FILE: /router.js
///////////////////////////////////

Router.configure({
    layoutTemplate : "main"
});

Router.route('main',{
    path : '/',
    template : 'main',
    waitOn: function() {
        return [
            Meteor.subscribe('userdata'),
            Meteor.subscribe('portrait')
        ];
    },
    data: function() {
        return {
            name: UserData.findOne().name,
            portrait: Portraits.findOne()
        };
    }
});

////////////////////////////////////////
// FILE: /client/main.html
////////////////////////////////////////

<template name="main">
    <header>
        My School
        <br>
        {{#if currentUser}}
            {{name}}
            <img src="{{portrait.url}}">
            <a href="{{pathFor 'login'}}" id="logout">Logout</a>
        {{/if}}
    </header>
    <div>
        {{> yield}}
    </div>
</template>

////////////////////////////////////////////
// FILE: /server/publications.js
////////////////////////////////////////////

Meteor.publish("userdata",function() {
    return UserData.find({user : this.userId});
});

Meteor.publish("portrait",function() {
    var portraitId = UserData.findOne({user : this.userId}).portrait;
    return Portraits.find({_id : portraitId});
});

///////////////////////////////////////////
// FILE: /lib/portraits.js
///////////////////////////////////////////
var portraitsStore = new FS.Store.FileSystem("portraits",{path : '~/Applications/meteor/school/server/uploads'});

Portraits = new FS.Collection("portraits",{
    stores : [portraitsStore]
});

///////////////////////////////////////////
// FILE: /lib/userdata.js
///////////////////////////////////////////

UserData = new Mongo.Collection('userdata');

当我使用订阅来检索Template.principal.helpers中的数据时,没有任何问题。问题在于铁路由器。

我正在使用ubuntu 14.04 whit chrome,谢谢

0 个答案:

没有答案