Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- https://developer-talk.tistory.com/299
- children vs childrenNodes
- variable#function
- User Flow
- @redux-toolkit
- https://www.daleseo.com/js-array-slice-splice/
- slice/splice/split
- 자바스크립트#조건문#문자열
- UI
- https://lo-victoria.com/introduction-to-redux-toolkit-for-beginners
- js
- dom
- 내장고차함수
- redux상태유지
- CSS
- ㄷㅌ
- UX
- 자바스크립트#JS#slice#splice
- https://dasima.xyz/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%9C%EA%B3%B1-math-pow-%EA%B3%84%EC%82%B0/
- removeCookie
- 헷갈린다~
- cmarket
- Beesbeesbees
- react
- toString#String
- JS#3일차달리자#초반인데#시간금방~
- 자바스크립트#JS#var#let#const#undefined#null
- 노드교과서
- for~in/for~of
- 자바스크립트
Archives
- Today
- Total
Daily Front_Minhhk
express 라우터 분리하기, 라우트 매개변수 본문
app.js에 많은 라우터들을 쓰게 된다면 코드가 매우 지저분 할 것이다.
따라서 app.js 에서는 분리된 라우터들을 가져와서 한줄로 적어주고
routes 폴더를 생성하여, 분리하자!
라우터 분리하기
routes/index.js
const express = require('express');
const router = express.Router();
// GET / 라우터
router.get('/', (req, res) => {
res.render('index', { title: 'Express' });
});
module.exports = router;
routes/user.js
const express = require('express');
const router = express.Router();
// GET /user 라우터
router.get('/', (req, res) => {
res.send('Hello, User');
});
module.exports = router;
app.js
const indexRouter = require('./routes'); // /index 는 생략가능
const userRouter = require('./routes/user');
...
app.use('/', indexRouter);
app.use('/user', userRouter);
와 같이 라우트 파일을 불러와서 app.use() 와 함께 라우트를 사용하자.
app.use 에 사용한 라우터주소 + 파일의 라우터주소 의 형식으로 사용된다.
user 라우터는
/user + /
GET /user/
가 된다.
라우트 매개변수
->
router.get('/user/:id', (req, res) => {
console.log(req.params, req.query);
});
:id에 해당하는 1이나 123을 조회할 수 있다는 점이며, req.params 객체 안에 들어 있다.
:id이면 req.params.id로,
:type이면 req.params.type으로 조회 가능!
주의 점은!!
일반 라우터보다 뒤에 위치해야 한다는 것
쿼리스트링 사용 시,
쿼리스트링의 키-값 정보는 req.query 객체 안에 들어 있다.
예를 들어 /users/123?limit=5&skip=10이라는 주소의 요청이 들어왔을 때
req.params와 req.query 객체는 다음과 같다.
{ id: '123' } { limit: '5', skip: '10' }
라우트 주소가 같을 때는, 하나로 묶어서 보기 좋게 사용 하자!!
router.get('/abc', (req, res) => {
res.send('GET /abc');
});
router.post('/abc', (req, res) => {
res.send('POST /abc');
});
->
router.route('/abc')
.get((req, res) => {
res.send('GET /abc');
})
.post((req, res) => {
res.send('POST /abc');
});
미들웨어가 존재하지 않아도 익스프레스가 자체적으로 404 에러를 처리해주기는 하지만,
웬만하면 404 응답 미들웨어와 에러 처리 미들웨어를 연결해주자!
app.use((req, res, next) => {
res.status(404).send('Not Found');
});
'Study > Node.js' 카테고리의 다른 글
express [req,res] 종류 (0) | 2023.10.08 |
---|---|
express [multer] 파일 업로드! (0) | 2023.10.08 |
express [morgan, bodyParser, cookieParser, express-session] (0) | 2023.10.08 |
express 시작__미들웨어 app.use() (0) | 2023.10.05 |