다른 사람이 만들어준 코드를 다운받거나 자신의 코드를 배포하여 다른 사람이 쓸 수 있도록 합니다
Node.js 에서는 npm 과 yarn 이 있다
Node Package Manager 의 약자
npm 의 대체제로 facebook 에서 출시했다
=> npm 과 yarn 을 같이 사용할 경우 충돌할 가능성이 있어 같이 사용하지 않는 것이 좋다
설치된 패키지들의 버전을 관리한다
동일한 패키지를 사용한다 하더라도 버전별로 기능을 다르게 사용할 수 있어 특정 버전을 설치할 때 필요하다
@Package-lock.json
패키지들 사이의 의존 관계가 상세하게 기록되어있어 정확하게 일치하는 버전만 기록되어 프로젝트 단위로 버전 관리를 할 수 있다
명령어를 통해 설치된 모듈 파일들이 모여있는 곳
해당 모듈을 참고하고 있는 다른 모듈들도 함께 설치된다
~이 폴더는 다른 곳에 공유하거나 배포할 때 포함하면 안된다~
( gir ignore 를 통해 제외하는 방법 )
개발 단계에서만 필요한 묘듈을 설치한다
npm install -D (모듈 이름) 으로 추가할 수 있다
클라이언트의 요청 조건에 대응해 응답하는 방식을 말한다
클라이언트의 요청을 쉽게 처리할 수 있게 도와주는 Express.js 의 기본 기능
router.METHOD ( PATH, HANDLER )
method - get, post, put, delete 와 같은 http 메서드
path - 실제 서버에서 api 를 사용하기 위한 경로
handler - 라우트가 일치할 때 실행되는 함수
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")
})
기본 경로로 들어온 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")
그 이후 goods.js 에서 라우터를 가져왔고 이를 실제로 api 로 express 에 적용시키면 된다
app.use()
모든 미들웨어가 app.use() 를 거친 이후에 밑으로 진행한다
app.use("/api", goodsRouter);
이 경로로 들어온 라우터들은 모두
/api 라는 경로를 추가한 코드는 모드 goodsRouter 로 가라 라는 뜻이다
@전체적인 정리
기본 url 에 /api 라는 것이 경로로서 추가 된 경우에는 모두 goodsRouter 로 가라
goodsRouter 는
기본 경로일 경우에 "default url for goods.js GET Method" 가 반환되고
그 뒤에 /about 이라는 경로가 붙었을 때에는
" goods.js about PATH" 가 반환된다