node JS - Package Manager & Routing

Jaa-van·2023년 4월 24일
0
post-thumbnail

Package Manager

다른 사람이 만들어준 코드를 다운받거나 자신의 코드를 배포하여 다른 사람이 쓸 수 있도록 합니다

Node.js 에서는 npm 과 yarn 이 있다

@npm

Node Package Manager 의 약자

@yarn

npm 의 대체제로 facebook 에서 출시했다

=> npm 과 yarn 을 같이 사용할 경우 충돌할 가능성이 있어 같이 사용하지 않는 것이 좋다

@Package.json

설치된 패키지들의 버전을 관리한다

동일한 패키지를 사용한다 하더라도 버전별로 기능을 다르게 사용할 수 있어 특정 버전을 설치할 때 필요하다

@Package-lock.json
패키지들 사이의 의존 관계가 상세하게 기록되어있어 정확하게 일치하는 버전만 기록되어 프로젝트 단위로 버전 관리를 할 수 있다

@node_modules

명령어를 통해 설치된 모듈 파일들이 모여있는 곳

해당 모듈을 참고하고 있는 다른 모듈들도 함께 설치된다

~이 폴더는 다른 곳에 공유하거나 배포할 때 포함하면 안된다~
( gir ignore 를 통해 제외하는 방법 )

@devDependencies

개발 단계에서만 필요한 묘듈을 설치한다

npm install -D (모듈 이름) 으로 추가할 수 있다

정리

  1. node_modules 는 공유나 배포할때 포함하지 않는다
  2. package.json 으로 환경에 맞는 모듈들을 설치할 수 있다
  3. package.json 에 명시된 모듈들을 npm install 을 통해 설치한

Routing

클라이언트의 요청 조건에 대응해 응답하는 방식을 말한다

Router

클라이언트의 요청을 쉽게 처리할 수 있게 도와주는 Express.js 의 기본 기능

router.METHOD ( PATH, HANDLER )

method - get, post, put, delete 와 같은 http 메서드
path - 실제 서버에서 api 를 사용하기 위한 경로
handler - 라우트가 일치할 때 실행되는 함수

routes 사용 과정

  1. routes 폴더 만들기
  2. 그 안에 goods.js 만들기

const app = require("express")
const router = express.Router() 

express 라는 라이버러리를 불러와 express 라는 변수에 할당 받는
-> 그 안에 Router 라는 함수를 불러와 그 결과값을 router 라는 변수에 할당한다

router.get('/', (req,res) => {
    res.send("default url for goods.js GET Method")
})
  • '/' => 기본 경로로 들어간다 ( 추가적인 URL 경로를 넣지 않겠다 )
  • req => request , api 에 받은 데이터는 req 에 들어있다
  • res => response, 반환값
  • res.send => send(") 에 있는 값을 response 로 반환할꺼

기본 경로로 들어온 get method 는 해당하는 코드를 실행할거다
res 로 반환할건데 send 안에 있는 문자열을 반환한다! 라는 api 를 하나 만들었다



router.get("/about", (req, res) => {
  res.send("goods.js about PATH");
});

/about 이라는 경로로 들어온 get method 는 이 함수를 실행한다
res 로 반환할건데 send() 에 있는 문자열을 반환할거다! 라는 api 를 만들었다


그리고 얘를 goods.js 에서 app.js 로 전달해줘야 한다

module.exports = router

module.export 를 사용해 router 라는 변수를 밖으로 내보내준다


app.js 에서 얘를 가져와야 한다

app.js 에 가서

const goodsRouter = require("./routes/goods.js")

  • './' => 상대 경로 ( 현재 지금 폴더를 나타낸다 )
    -> 여기서 routes 라는 폴더를 찾고 goods.js 라는 파일을 찾아가야 한다

그 이후 goods.js 에서 라우터를 가져왔고 이를 실제로 api 로 express 에 적용시키면 된다

전역 미들웨어

app.use()

  • app,use() => goods.js 에서 만든 api 들은 위에서 밑으로 찾아가게 된다

모든 미들웨어가 app.use() 를 거친 이후에 밑으로 진행한다

app.use("/api", goodsRouter);

  • /api => 사용할 경로

이 경로로 들어온 라우터들은 모두

  • goodsRouter => 로 가라

/api 라는 경로를 추가한 코드는 모드 goodsRouter 로 가라 라는 뜻이다


@전체적인 정리

기본 url 에 /api 라는 것이 경로로서 추가 된 경우에는 모두 goodsRouter 로 가라

goodsRouter 는

기본 경로일 경우에 "default url for goods.js GET Method" 가 반환되고

그 뒤에 /about 이라는 경로가 붙었을 때에는
" goods.js about PATH" 가 반환된다

0개의 댓글

관련 채용 정보