| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- algorithum
- 컴퓨터사이언스
- 생활코딩
- SQL
- 깃
- 제로초
- 프로그래밍
- Blockmonkey
- hyperledger fabric
- 블록몽키
- DataStructure
- Nodejs 프로젝트
- 자바스크립트
- nodejs
- 생활코딩 nodejs
- javascirpt
- 하이퍼레저
- mysql
- al
- javascript 게임
- vs code
- 블록체인개론
- js
- 파이썬 알고리즘
- 관계형데이터베이스
- 컴퓨터공학개론
- javascript 초급
- hyperledger
- Javascript
- 블록체인
- Today
- Total
Blockmonkey
Express - Router(라우터) 본문
라우터란?
"라우팅은 애플리케이션 엔드 포인트(URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 말합니다."
즉, URI를 다루는 기법이다.
주소창에
이런식으로, 카테고리 별로 묶을 수 있다.
기본적으로 app.get('/manage', 콜백함수) << 이런식으로 다루는 것을 '라우팅'이라고 부른다.
이것이
tistory.com/manage
이처럼 한개라면,
tistory.com/manage/board/upload
이런식으로 / 를 더 깊게 카테고리 별로 묶어낼 수 있다.
만약,
app.get('/manage/category', 콜백함수);
app.get('/customer/findpassword', 콜백함수);
app.get('/customer/login', 콜백함수);
app.get('/manage/upload', 콜백함수);
app.get('/manage/download', 콜백함수);
이런게 수억가지가 있다고 해보자.
얼마나 보기 불편한가?
따라서 보다 편리하게 정리해 재사용성을 증대시켜준다.
사용방법

1. Router 를 위한 폴더를 생성한다.
필자는 'Routes'라고 생성했다~
2. 그리고 묶을 단위를 설정,
admin과 video 두가지로 묶는다고 가정하고 두개의 파일을 만들어줬다.

3. admin으로 예시를 들겠다.
import express from "express"; //express Router를 사용할 것이므로,
const adminRouter = express.Router(); //이렇게 변수할당을 해서 아래에서 사용.
adminRouter.get('/', (req, res)=> { // www.주소.com/admin/ 어드민의 루트페이지.
res.send(`Management Page`);
})
adminRouter.get('/enroll', (req, res) => { // www.주소.com/admin/enroll 접속페이지
res.send(`Enroll Page`);
})
adminRouter.get('/upload', (req, res)=> { // www.주소.com/admin/upload 접속페이지
res.send(`This is Upload Page`);
})
export default adminRouter; //꼭 꼭 잊지말고, export해줘야 동작한다.
express를 불러온다. (안그럼 라우터 작동못한다. express모듈 라우터라서..)
변수를 선언한다. 원하는 이름으로.. adminRouter라서 이름을 저렇게 지었다.
그리고, 거기에 express.Router() 모듈을 가져와 사용한다.
이제, 이것을 이용해서 .get으로 /admin/원하는 URI를 설정해준다.
그리고 콜백함수설정.
마지막으로 export default adminRouter해줫다.
이거 가끔 빼먹으면 동작 절대 안한다. (내보내서 딴 곳에서 쓸 수 있게 해준다는거다)
4. 이제 app.js에서 사용한다.
import adminRouter from "./routes/adminRouter";
위 코드를 삽입해 adminRouter를 불러왔다. 어디서? 현재폴더/routes폴더/adminRouter.js 파일
app.use('/admin', adminRouter);
미들웨어 호출하듯이, app.use를 사용한다.
첫번째 인자로, / 카테고리로 묶을 네이밍을 정한다. 위처럼 쓰면, www.주소.com/admin/~~~ 이렇게 동작하는 것이다.
두번째 인자로, 위에서 임포트해온 adminRouter를 적용해준다.
그럼 이제 테스트를 해보자.
위 코드대로 했다면,
http://localhost:3000/admin/
http://localhost:3000/admin/enroll
http://localhost:3000/admin/upload
세개가 동작해야 정상이다.
필자는 3000번 포트를 썻지만, 다른 포트일 수도있으니 본인 포트 확인할 것.
'Web Development > Back-end' 카테고리의 다른 글
| [WEB] MERN STACK APP 배포 (0) | 2021.12.06 |
|---|---|
| [형변환] Golang ([]byte -> big.Int) (0) | 2021.08.11 |
| [Error] Cannot set headers after they are sent to the client (클라이언트로 보내진 헤더를 다시 조정할 수 없다는 의미) (0) | 2021.05.31 |
| Node 프로젝트에서 .gitignore 기본값 (0) | 2020.11.03 |
| Express - Babel(바벨) 적용하기 (0) | 2020.11.03 |