URL Parameters # 01

0_CyberLover_0·2022년 3월 19일
0

Node.JS # 02

목록 보기
1/19
post-thumbnail

" / : id " 반드시 id 를 쓸 필요는 없다.

":" parameter라고 부른다.

point는 url 안에 변수를 포함 시킬수 있게 해준다.

만약 parameter를 이용하지 않는다면 모든 url마다 router 새로 만들어야 줘야 한다.

절대 이렇게 코드를 짜면 안된다.

parameter는 url안에 변수를 넣는걸 허용해 준다.

express가 변수를 넣어준다.

ex:)

/videos/918721

videoRouter.js에 있는 걸 한번 적용해 보겠다.

videoRouter.get("/:id", see);

videoController.js

export const see = (req, res) => {

console.log(req.params);

return res.send("Watch");

};

이렇게 변경해 준다.

http://localhost:4000/videos/124154

이동해 보면 watch 문구가 보인다.

콘솔을 확인해 보면 { id: '124154' }id와 변수를 확인할수 있다.

express는 url이 변수를 가지고 있다고 이해한다.

그리고 express는 명칭해준 이름과 함께 값을 알려준다.

나머지도 변경해 준다.

videoRouter.js

videoRouter.get("/:id/edit", edit);

videoRouter.get("/:id/delete", deleteVideo);

videoController.js

export const edit = (req, res) => {

console.log(req.params);

return res.send("Edit");

};

export const deleteVideo = (req, res) => {

console.log(req.params);

return res.send("Delete Video");

};

" : " 반드시 넣어 줘야 한다. 없게 되면 그냥 text일 뿐이다.

express는 text가 필요한거라고 생각하게 된다.

videoController.js 수정 해준다.

export const see = (req, res) => {

return res.send(`Watch Video #${req.params.id}`);

export const edit = (req, res) => {

return res.send("Edit");

};

export const deleteVideo = (req, res) => {

return res.send("Delete Video");

};

request parameter text 같이 return 한거다.

req.paras.id를 받아와서 문자열로 내보내 준다.

videoRouter.js를 보면

videoRouter.get("/upload", upload);

videoRouter.get("/:id", see);

upload가 id보다 위에 있는걸 알수 있다.

만약 upload가 id 밑에 있게 되면 express는 upload가 id라고 인식하게 된다.

Watch Video #upload라고 뜨게 된다.

profile
꿈꾸는 개발자

0개의 댓글