일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- API
- CSS
- 리액트
- Session
- pug
- backend
- DART
- javscript
- ES6
- express
- node.js
- Flutter
- MongoDB
- heroku
- GRID
- react
- TypeScript
- frontend
- graphQL
- nodejs
- NextJs
- 자바스크립트
- HTML
- Mongoose
- JavaScript
- CLONE
- form
- ECMAScript
- Component
- clonecoding
- Today
- Total
목록populate (3)
Enjoy Programming

기존 클론코딩을 하며 mongoose의 populate메서드를 가져다 쓴적이 있는데.. 음 object id를 가져온다는건가? 뭔지 이해가 잘 안갔는데 차근차근 다시 포스팅해본다. mongoose 공식 doc을 보면 mongo-db의 lookup과 같은 연산자를 갖고 있다. 그리고 mongoose는 더 강력한 대체항목으로 populate()메서드를 가지고 있다고 한다. 그럼 간단히 말해 populate()가 하는 역할이 무엇인가~ 다른 스키마의 정보를 참조해서 쓰는것이다. 우선 두개의 스키마 user와 video 가 있다고 하자 그리고 video 스키마에는 owner라는 key가 있다. 그리고 이 owner는 ObjectId 타입이고 User model을 참조하고 있다 이때 owner를 통해 User ..

코멘트 작업을 해주는데 프론트 엔드 작업을 하기전에 백엔드 부터 해본다. root를 설정해주러 routes.js에서 api part에 url 설정을 해주고 videoController에서 postAddComment컨트롤러를 만들고 (videoDeail컨트롤러에서 populate를 이용해 creator와 comments를 가져온다) video, user를 이용해 comment를 만들고 넣어준다. 그리고 apiRouter에서 post방식으로 라우터 하나 만들어준다. 이제 템플릿에가서 코멘트 폼을 만들고 코멘트 리스트를 만들자. 그리고 이번에는 ajax를 통해 서버로 코멘트 정보를 보내고 받아오겠다. 프론트에서 작동할 addComment.js하나 만들고 submit 이벤트 핸들러를 하나만들어서 submit 이..

앞서 만든 video edit은 로그인한 유저와 비디오 작성자 정보가 다르면 수정이 안되는 거였지만 문제는 routes활용해 url 마지막에 /edit을 써주면 수정페이지로 이동하게 된다. 이를 수정해보자~ get edit컨트롤러에서 video 객체를 받아와 조건문을 달아주자 video를 작성한 사람이 현재 로그인한 유저가 아니면 에럴를 발생시키고 아니면 수정페이지를 띄우게 한다. 한가지 주의 할 점은 video.creator는 타입이 object타입이고 req.user.id는 string 타입이다. 둘의 타입을 같게 해줘야 조건문이 성립하기에 video.creator를 toString()을 이용해 변환해주자. 그럼 성공적이다~!~! 이와 같이 delete 컨트롤러도 수정해주자 몇가지 수정을 더 해야하지..