2017-01-31 1 views
0

MeteorJS로 사용자 프로필을 표시하려고합니다.Meteor JS에서 ID로 사용자를 선택하는 방법은 무엇입니까?

모든 사용자는 MongoDB에 프로필이 저장되어 있지만 탐색기 콘솔에는 사용자 이름, 전자 메일 및 _id 필드 만 표시됩니다.

Router.route('/profile',{ 
    name : "profile", 
    data : function(){ 
    user = Meteor.users.find(Meteor.userId()).forEach(function(user) { 
     console.log(user); 
    }); 
    //console.log(user); 
    }, 
    waitOn : function(){ 
    return Meteor.subscribe("allUsers"); 
    } 
}); 

/server/Publications.js/lib/Router.js에서 :

Meteor.publish("allUsers",function(){ 
    return Meteor.users.find({},{ 
    fields :{ 
     username : 1, 
     emails : 1, 
     profile : 1 
    } 
    }); 
}); 
+0

코드 나에게 올바른 모습을 대신, 당신은 필드에 대한 당신이 필요로 해달라고 필드와 아무것도 0을 넣어보십시오 않았다 다음과 같이 나는이 쓰기 것 너는 필요해? –

+0

또한, 나는 보통 라우터 레벨 구독 대신에 유성 템플릿에서 템플리트 레벨 구독을 다음과 같이 수행합니다. Template.executiveSingleCode.onCreated (함수() { \t this.autorun (() => { \t \t this.subscribe ('ALLUSERS') \t}) }) –

답변

1

프로필 경로가 약간 펑키 보이는

이 내 코드입니다. 모든 사용자가 아니라 현재 사용자의 프로필 만 필요할 것 같습니다.

Router.route('/profile',{ 
    name : "profile", 
    data(){ 
    return Meteor.user(); 
    }, 
    waitOn(){ 
    return Meteor.subscribe("me"); 
    } 
}); 

/server/Publications.js :

Meteor.publish("me",function(){ 
    return Meteor.users.find(this.userId,{ 
    fields :{ 
     username : 1, 
     emails : 1, 
     profile : 1 
    } 
    }); 
}); 
+0

당신을 감사합니다! 나는 그것을 시도하고 그것은 나를 위해 작동합니다. –

관련 문제