(javascript) youtube Recap

수민·2023년 2월 13일
0

front2

목록 보기
4/5

RECAP
1) package.json: node.js 관련 정보를 담는 방법 / 그냥 text -> 뭘 넣어도 상관 X

  • 이 파일에 넣으면 npm이 어떤 행동을 할 수 있게 해주는 것들이 있음 (예. scripts: npm run script이름 => 복잡한 scripts에 별명을 줄 수 있음)
  • dependencies: 프로젝트가 돌아가기 위해 필요한 패키지들
    (express로 서버를 만들었으니 express가 없으면 서버가 돌아갈 수 없을 때! dependencies에 express와 버전을 적어놓으면 공유할 때에 간단한 파일만 공유하면 각자 컴터에서 다운로드 받아서 코드를 정확하게 실행할 수 있음)
  • node_modules: git에 업로드하지 않고도 만 하면 모든 것이 알아서 설치됨. 파일을 가볍게 하면서 공유 가능
  • devDependencies: 그냥 디펜덴시와 같이 node_modules로 가는 것은 똑같지만! 다른 점은 개발자가 개발할 때 필요한 것이라는 점!!! nodemon 파일을 보고 있다가 변화가 생기면 commend를 재시작해줌. (서버 만드는데 꼭 필요한 것은 아니고, 개발환경을 편하게 하려고 필요한 것) babel: 우리는 섹시한 ES6 코드를 쓰고 싶은데 node.js가 최신 코드를 지원하지 않을 때도 있음. 따라서 server.js를 node로 돌리는게 아니라 babel-node로 돌리는것!!! babel-node가 서버를 작동해 섹시코드를 이해하고 평범한 node.js 방식으로 변환해서 서버를 작동시킴. babel-node를 작동시키기 위해서는 babel.config.json이라는 파일을 만들어야함. 우리가 babel에 추가하고 싶은 plugin을 넣음.

브라우저는 서버에게 페이지를 request(요청)하고 서버는 그에 대해 response(응답)한다. 만약 브라우저의 요청에 대해 서버가 return을 통해 응답하지 않으면 브라우저는 응답을 기다리기만 한다.

const app = express(); 을 통해 app에 express의 메서드, 기능 등 모든 걸 담고 app.get("route", controller);을 통해 브라우저와의 연결통로를 구축한다.
바닐라JS 때 add.eventListener와 함수를 연결해주는 것과 유사하게, 브라우저의 request를 받았을 때 서버로써 그에 대한 응답을 return해줄 const controller에 함수를 구성해준다. 일반적으로 (request, response)를 argument로 받고 무언가를 return해주는 화살표 함수를 구성하는 것으로 시작해준다.

쉽게, 무언가를 return하지 않고 next(); 를 통해 다음 함수로 연결해주는 controller를 middleware라고 한다. controller는 argument로 (request, response)만을 받는 반면 middleware는 next를 추가로 받는다. (req, res, next) 다만 어떤 조건에 해당하여 중간에 return하게 되면 그 middleware는 controller의 역할을 하게 되고, 다음 함수로의 연결은 끝난다.

Router

모든 Express 애플리케이션에는 앱 라우터가 내장되어 있습니다.
라우터는 미들웨어 자체처럼 작동하므로 app.use()에 대한 인수로 또는 다른 라우터의 use() 메서드에 대한 인수로 사용할 수 있습니다.
최상위 익스프레스 객체에는 새로운 라우터 객체를 생성하는 Router() 메서드가 있습니다.

Routing
https://expressjs.com/ko/guide/routing.html

정규표현식 테스트 사이트
https://www.regexpal.com

\w+: 모든 문자, 숫자 선택
\d+: 모든 숫자 선택

profile
헬창목표

0개의 댓글