본문 바로가기
Databases/To Do List DB

[ToDoList DB 4] Work 페이지 만들기 | Express Route Parameters

by CodeMia 2021. 11. 25.

이제 오늘 할일 리스트 뿐만 아니라 

work list 도 나오게 하려면 어떻게 해야할까? 

 

지금은 아무 것도 연결된 것이 없어서 에러가 난다. 

 

 

home으로 갈려고 localhost:3000/home을 눌렀을 때

home 관련 할 일이 뜨게하려면 어떻게 해야할까?

 

 

express는 route parameter를 이용해 dynamic route들을 만들어서 이를 해결 할 수있다. 

 

get("/work") route를 지우고,

 

 

Express Route Parameters를 만들어 보자. 

get과 post route 사이에 적어본다.

 

주소창에 home을 쓰면 

콘솔에도 그대로 나온다. 

 

work를 쓰면 그대로 나온다.

 

 

 

라우트 파라미터와 기본 멘트를 담을 새로운 스키마와 모델을 만든다.

items:[] array에 담는다.

items:[itemsSchema] 

 

 

 

 

이제 console.log를 지우고

url 주소에서 입력한 파라미터를 데이터 베이스에 담는다. 

 

items은 위에 있는 디폴트 아이템이 나오도록 한다. 

 

 

 

주소창에 localhost:3000/work를 치고서 mongosh에서 lists collection이 만들어졌나 확인한다.

 

work로 데이터가 들어가 있는 것을 볼 수 있다. 

디폴트 아이템 내용도 들어가 있다. 

 

 

 

여기서 또 localhost:3000/work를 주소창에 치면 또 work 데이터가 하나 더 늘어난다.

같은 name인 경우 하나만 검색 되게 할 수 없을까?

findOne()으로 여러 개 있더라도 하나만 나오게 한다. 

 

 localhost:3000/home을 눌렀더니 이전에 저장된 게 있어서 있다고 나온다. 

 

about을 적었더니 저장된게 없어서 없다고 나온다.

 

 

console.log를 지우고 아래 내용을 넣는다.

 

다이나믹 파라미터가 없으면 collection에 집어넣고, 

파라미터가 있으면 list.ejs 파일을 렌더한다. 

 

 

localhost:3000/home으로 가면 화면이 안나오는데 

일단 mongosh에 가서 lists collection을 지운다. 

 

 

 

다시 localhost:3000/home을 주소창에 치면 

list collection이 다시 만들어졌다.

 

 

하지만 인터페이스가 변하지는 않는다. 

redirect로 해줘서 해당 페이지가 나오게 한다. 

 

 

 

 

주소창에 입력한 파라미터가 그래로 해당 페이지로 나왔다. 

 

 

 

댓글