코드네임 JY

[Meteor] MongoDB에서 Meteor.user() 연결하는 방법 본문

백엔드 공부

[Meteor] MongoDB에서 Meteor.user() 연결하는 방법

영재임재영 2020. 2. 2. 01:45

개인 DB 연결하는 방법

DB_POSTS에 있는 데이터들을 불러와서 게시판에 나타내고 수정까지 하는 기능들은 우리가 다 해봤어요.

그럼 DB_POSTS 말고 Meteor.user()에 있는 데이터들을 불러오려면 어떻게 해야 할지 생각해봅시다.

 

1. 사용자 정보 불러오기

Meteor.user()는 현재 로그인된 사용자의 정보를 불러옵니다.

Console 창에 Meteor.user()를 검색했을 때 나오는 결과

 

2. 파일 만들기

ex_mypage : 우리가 만든 프로필들이 나오는 게시판

ex_mypagepost : 프로필 하나를 선택하였을 때 나오는 프로필 정보

ex_mypageposting : 프로필 수정

 

3. ex_mypage 수정하기

ex_mypage.html
ex_mypage.js 수정 전

 

boards는 DB_POSTS에 있는 전체 데이터를 불러오고, link는 사진 링크를 가져오는 역할이므로,

ex_mypage.js 수정 후

boardsMeteor.users.findAll()로 수정하여 'users' 데이터베이스에 등록된 모든 정보들을 다 가져오게 하고,

linkMeteor.user().profile.profile_picture로 수정하여 Meteor.user() 안에 있는 profile 속성 안에 있는 profile_picture 값을 가져오도록 하였다.

(그리고 아직 대표님한테 안물어봤는데 .link()가 붙어야 하는지 말아야 하는지는 모르겠어서 일단은 썼다)

name이랑 titlelink와 똑같은 방법으로 값을 불러올 수 있다.

 

Console 창에 Meteor.user().profile을 검색했을 때 나오는 결과

 

ex_mypage의 결과 화면

 

4. ex_mypagepost 수정하기

ex_mypagepost.html
ex_mypagepost.js 수정 전

board는 선택한 프로필 안에 있는 데이터들(프사, 닉네임, 자기소개)을 불러오는 역할이므로,

ex_mypagepost.js 수정 후

board는 DB_POSTS에서 가져왔던 것을 Meteor.users로 수정하였고,

그 중에서 findOne({_id: _id})을 통해 현재 등록된 id와 같은 id를 가지고 있는 user 정보를 불러오게 하였으며,

link name, title은 3번 설명과 같다.

 

ex_mypagepost의 결과 화면

 

5. ex_mypageposting 수정하기

ex_mypageposting.html

5-1. helpers 부분

ex_mypageposting.js helpers 부분 수정 전

post는 수정할 때 받는 수정 값들을 모아놓은 것인데, post 부분 함수의 return 부분을 보면

DB_POSTS.findOne({_id: _id})를 통하여 user의 정보를 DB_POSTS에서 가져온다.

link는 위에서 설명한 것과 동일하다.

 

ex_mypageposting.js helpers 부분 수정 후

post에서 Meteor.users.findOne({_id: _id})로 수정하여 user의 정보를 Meteor.users에서 가져오게 하였고

그 중에서 findOne({_id: _id})을 통해 현재 등록된 id와 같은 id를 가지고 있는 user 정보를 불러오게 하였으며,

link는 위 부분과 동일하다.

 

5-2. events 부분

ex_mypageposting.js events 부분 수정 전
ex_mypageposting.js events 부분 수정 후

사실 이 부분만 해결하면 되는데 데이터 update 함수가 이해가 잘 안가고 자꾸 오류나서 어떤식으로 써야할지 질문해야 할 것 같다.

개빡치네

특히, 이 줄에서 오류가 자꾸 나는데 아직까지 해결 못했다.

Comments