• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

질문입니다.

20.04.14 18:30 작성 조회수 95

1



router.post('/uploadfiles',(req,res=>{
    // 비디오를 서버에 저장하낟 .
    upload(req,res,err=>{
        if(err){
            return res.json({success:falseerr})
        }
        console.log("=================================================================")
        console.log(res.req.file)
        return (
            res.json({
success:true ,   
url : res.req.file.path ,  
fileName : res.req.file.filename
             })
        )
    })
}) // 앞에 라우팅해줬기 떄문에 이렇게 써줘도 되요 

다음의 코드에서 res.req 부분이 잘 이해가 되지 않아 질문합니다.

저는 res는 벡 엔드쪽에서 프론트 쪽으로, 

그리고 req는 프론트에서 벡 엔드쪽으로 가는 

정보들을 모아놓은 개념이라고 생각을 했습니다.

정확히 말하면, http를 통해

request와 관련된 패킷( request 헤더와 바디)

response와 관련된 패킷(response 헤더와 바디)

이 2개가 오가는 것으로 알고 있는데  

그런데  res.req는 뭔가 그 개념 자체를 무시하는 문법인 것 같아서 이것은 내부적으로 어떤 의미를 가지고 있는지 궁금합니다. 

요청과 응답을 별개인데 응답에서 요청을 참조한다?? 

말이 어패가 있는 것 같아서요. 

혹시 조금의 설명을 부탁드려도 될련지요? 

====================================

좋은 강의 항상 너무 감사드립니다. 

가르침에 대해 재능이 있으신 것 같아요. ^^^

답변 1

답변을 작성해보세요.

5

안녕하세요 ^^   우선 칭찬 너무 감사드립니다 ! 

우선 라이브러리들의 특성을 말해드리는 것도 좋을것같아요 ~! 

라이브러리들은  많은 사람들이 자신의 논리와 재능으로 만들어서 무료로 오픈소스로 제공하는 것도 있고

돈을 받고 파는 것들이 있잔아요 ~ 

그래서 그 분들이 라이브러리를  만들때 내부적으로 규칙들을 만들어요 

a를 호출하면 b가 나오게하고  c를 호출하면 d가 나오게하고 !   규칙을 만든 다음에 

그걸 사용하는 사람들이 어떻게 되어있는지 알수있게  Documentation을 작성을 해놓으면 

저희는 그것에 따라 쓰고 있습니다 ! 

그래서 물어보신 부분을 보면 지금 upload에서 나오는  res 와  req잔아요 ~ 

upload는 또한 multer 모듈에서 나온거죠 ! 

그래서 이  multer를 만든 사람이    만약에   사용자가 multer를 이용해서 저장한 파일의 이름을 알고 싶으면 

res.req.file.name이렇게 요청을 하면 알아서 저장된 파일의 이름을 주겠다고 약속을 해놔서 이렇게 쓸수 있는것입니다 ^^ 

그래서 결국은 만든 사람의 생각에 따라 만들어진거죠 ~! 

그래서  아마  res.file.name으로 했으면 더 이해하긴 편했을것 같지만  아마  만들때 여러가지를 고려하다보니 

res.req. 이런식으로 간게 아닐까 생각이 됩니다 ^^ 

이러한 것들 때문에 앞으로 개발할때  각종  API들의  Documentation을 많이 보는 것은 굉장히 유용하다고 생각됩니다 ^^