일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- MongoDB
- HTML
- 리액트
- backend
- Component
- CLONE
- API
- TypeScript
- DART
- clonecoding
- 자바스크립트
- node.js
- CSS
- heroku
- javscript
- graphQL
- ES6
- Flutter
- pug
- JavaScript
- ECMAScript
- frontend
- NextJs
- Mongoose
- react
- GRID
- nodejs
- express
- form
- Session
- Today
- Total
목록Mongoose (12)
Enjoy Programming
이번엔 비디오 삭제를 기능을 구현해보자. 역시 라우트에서 라우트를 id인자를 받는 함수로 바꿔준다. 그리고 id를 받으면 delete로 넘어가도록 라우트 설정을 해줌 그리고 컨트롤러 수정도 해주자 파라미터로 id를 받아준다. async await으로 역시 waiting을 해주고 mongoose methoddls findOneAndDelete로 해당 비디오를 삭제해주자 그리고 결과가 어떻든 홈페이지로 다시 redirect를 해주기 때문에 해당 코드는 try catch 스코프 바깥에 작성했다 그리고 edit.pug에서 delete링크에 라우트설정을 함수로 바꾸고 video.id 매개변수를 넣어주자. 마지막으로 비디오 라우터도 수정~ 이제 삭제가 된다. but@!!! 파일 uploads/videos 에는 업로..
이번엔 비디오 수정페이지를 다루자. 먼저 routes.js로 가서 editVideo 라우트를 함수로 만들어주자 아이디를 인자로 받기로 하고 id값이 들어오면 /vidoes/id/edit으로 접속하고 id가 없다면 edit_video url으로 라우트 한다. 이제 함수로 만들어줬으니 videoDetail 템플릿에서 링크에 routes.editVideo()함수로 바꿔주고 video controller에서 받은 video에 id를 받아온다. 그리고 videoRouter상에 editVideo도 함수로 바꿔준다 그리고 할 일은 get을 통해 url은 routing했으니 post를 통해 업데이트 하는 컨트롤러를 하나더 만들어주자 기존 editVideo는 getEditVideo로 수정했고 이제 postEditVide..
비디오 재생까지 이루어졌다. 이제 비디오링크를 클릭하면 비디오 상세정보 페이지로 이동하게 되고 url에 video의 id를 받고 있는 것을 확인 할 수 있다 이제 할 일은 video의 자세한 정보를 생성하는 일이다. 컨트롤러상에 videoDetail 컨트롤러는 만들어져있고 이제 파라미터로 id를 받으면 된다. 저번에 짚고 넘어갔어야 할 쿼리스트링을 좀더 알아보자. 기본적으로 url에 접근하면 path를 통해 결과를 페이지에 로딩 해준다. 예를 들어 http://google.com/taeeon으로 접속하면 taeeon이라는 path에 결과를 뿌려준다. 언제나 같은 결과를 보여주는 것이다. 유저프로필 페이지라면 접속자가 다른 경우에는 다른 결과를 보여줘야 하는데 그렇다면 같은 url에서 어떻게 여러 결과를 ..
이번에는 댓글 모델을 만들어주자. 뭐 비디오 밑에 댓글다는 기능을 만들어야 하니~~~ 역시 models폴더에 Comment.js파일을 만들어 주고 코멘트 스키마를 정의해준다. 그리고 Comment라는 모델을 만들어주고 export한다 여기서 한가지 옵션이 더 들어가는데 comment가 어떤 비디오의 코멘트인지 연결될 지점이 없다는 것이다. 이부분은 video또는 comment모델스키마 정의부분에 정의해주면 되는데 두가지 옵션중 하나를 선택하면된다. 하나는 코멘트에 해당 비디오 id를 연결해서 보여줄 건지 아니면 비디오에 해당 코멘트들의 id를 배열로 넣어서 보여줄건지 이다. 둘중에 편한걸 쓰면 되는데 방법은 두가지중 하나를 쓰면 된다. mongoose.Schema.Types.ObjectId를 타입으로 주..
몽고 db의 장점은 document를 줄여준다는 것이다., document는 바로 JSONfile 몽고db에 개발자의 파일들이 어떤식으로 생겨야 할 지 알려줘야 한다. 일종의 validation이 필요하다. 예를 들어 파일들은 video라는 이름을 가지고 모든 비디오들은 string type이며 string의 이름은 title이다. 그리고 videos는 view를 가지게 되고view는 number type이다 라고~ 알려주는? 그런 것이다. 일단 models라는 폴더를 만들고 거기에 저장해주자. 그리고 Video.js파일을 하나 만들어주고 안에 model과 schema를 설정해주자 model은 document name이며 schema는 형태이다 여기서 잠깐... 잠시 몽고디비를 배웠을때 mongodb는 ..
이번엔 데이터 베이스 관련 코드를 짜고 유저에게 영상을 보고 검색, 수정 삭제할 수 있게 해보자. 자 mongoose가 설치되었고 dotenv를 설치하자. dotenv란 node.js로 개발을 하면 port, DB관련 정보등 전역으로 필요한 여러 정보들이 존재한다. node.js에서는 dotenv패키지를 통해 환경변수 파일을 외부에 만들고 관리할 수 있다. 특히 , 깃허브등에 오픈소스로 프로젝트를 공개할때 DB계정 정보를 소스코드내에 하드코딩 하지 않고, 외부환경변수 파일에 작성하고 gitignore를 통해 제외하면 노출되지 않고 안전하다. 참고 - 환경변수란 OS입장에서 해당 프로세스를 실행시키기 위하여 참조하는 변수 - 컴퓨터로 하는 모든 작업들은 OS를 통해 실행되는 자식 프로세스인데 이프로세스들을..