inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기

질문입니다.

162

andrewlee

작성한 질문수 35

0

안녕하세요 강사님. 제가 직접 모든 코드를 따라쳐보면서 각 코드가 가지는 의미들까지 되짚어보면서 이번주 공부를 하고 있는데요,

의문이 생긴 코드가 있어 질문을 합니다. 


//use this to show the image you have in node js server to client (react js)
//https://stackoverflow.com/questions/48914987/send-image-path-from-node-js-express-server-to-react-client
app.use('/uploads'express.static('uploads'));

// Serve static assets if in production
if (process.env.NODE_ENV === "production") {

  // Set static folder
  app.use(express.static("client/build"));

  // index.html for all page routes
  app.get("*", (reqres=> {
    res.sendFile(path.resolve(__dirname"client""build""index.html"));
  });
}

바로 이 코드인데요. 서버쪽의 index.js 입니다.

항상 개발단계에서만 작업을 하다보니 Production 단계에서는 이러한 코드처리가 구체적으로 어떤 의미를 가지는 건지가 잘 이해가 안되는 것 같아요. 

대답하기 쉬우시라구 번호를 매겨 보았습니다.!!! 

1. 일반적으로 코드를 완성하면 프론토 엔드 서버 따로 ( nginx 라던가 ), 벡 엔드 서버 따러 ( amazon ec2 라던가 ) 해서 각자의 역할을 분리하는 것으로 알고 있습니다.

2. 그렇다면 벡엔드쪽 코드인 위 코드에 프론트와 관련된 스태틱 폴더를 지정(app.use(express.static("client/build"));)하는 이유가 무엇인지요? 프론트 엔드의 스태틱 폴더를 관리하는 책임은 프론트 서버쪽 코드에서만 담당해야 하는 것이 아닐까요? 이 코드의 의미 자체를 모르겠어요 ㅠㅠ

3. app.get("*", (reqres=>  코드의 의미는 SPA 이기때문에 어떤 호출이건간에 벡엔드는 해줄 것이 없고 그냥 프론트 서버의 index.html로 가라는 뜻으로 받아들이면 되나요?   

좋은 강의, 자료 감사합니다. 즐거운 하루 되세요

mongodb nodejs react redux

답변 1

0

John Ahn

안녕하세요 ^^ 

1.   먼저  약간 정정하면    nginx 프론트 서버도   EC2에       백엔드 서버와 함께 올라갑니다.

ec2는  가상의 서버이며   그곳에다가   OS를 설치하고    그 OS안에   프론트 서버와  백엔드 서버가 올라갑니다 

2. 리액트 부분을  실제 배포를 해서 사용을 하려면   npm run build 라는 걸 해서  build를 해야 합니다 ^^ 

그렇게 되면    client/build 폴더에  모든 react 소스가   webpack으로 인해 bundle 이 되어서 들어갑니다 !

그래서 모든 static 파일들이 거기에 모여있기에  app.use(express.static("client/build"));

 이런식으로 해주는 것입니다 ^^ 

npm i하면 바로, 라이브러리 오류없이 받아지고, 구동되는 소스는 없나요?

0

52

1

ERROR in ./node_modules/antd/es/version/index.js 2:15-22

0

221

1

자료 없음

0

323

1

이미지 깨짐

0

336

1

npm run dev 동작 에러

0

304

1

npm run dev 동작 에러

0

295

1

npm run dev 동작에러납니다...

0

662

1

npm run dev 실행 오류

0

653

1

비디오 업로드, 로그인, 회원가입 504 error

0

1057

1

시작부터 오류생기시는 분들 해결법입니다.

1

467

1

오류 해결 공유

0

459

1

npm install 에러 질문드립니다.

0

1121

2

아예 몽고DB에 연결한다고만 하고 연결이 안되고 있습니다.

0

551

1

해당 오류 해결 방법 좀 알려주세요 ㅠㅠ

0

516

1

로컬스토리지에 대한 질문입니다!!

0

515

0

video가 안 나타나는 문제

0

894

1

ffmpeg 설치 후 cannot read property 'format' of undefined 500 에러 해결

0

471

0

typeError or 콘솔 500 뜨는분..

0

336

0

npm run dev 관련 오류

0

578

1

답글이 달리지않고 디비에도 저장되지않으며 새로고침이 됩니다.

0

246

0

useState 자동 생성

0

347

1

TypeError: Cannot read properties of undefined (reading 'format')

0

1246

2

userData undefined / state에 user.userData가 없습니다.

0

248

0

antd Input background color 변경

0

242

0