반응형
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 | 31 |
Tags
- React
- queue
- treenode
- axios
- leetcode
- event
- routes
- component
- 비트연산
- BinaryTree
- Context
- server
- DP
- map
- priority_queue
- css
- route
- MySQL
- count
- node.js
- JSX
- bit
- Props
- Navigation
- c++
- Callback
- array
- state
- UE5
- nodeJS
Archives
- Today
- Total
우사미 코딩
[Node.js] express로 GET, POST, ROUTE 요청 처리하기 본문
반응형
1. App.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const adminRoutes = require('./routes/admin.js');
const shopRoutes = require('./routes/shop.js');
app.use(bodyParser.urlencoded({extended:false}));
app.use('/admin', adminRoutes);
app.use('/shop', shopRoutes);
app.use((req, res, next)=>{
res.status(404).send('<h1> Page not found! </h1>')
})
app.listen(3000);
그리고 routes 폴더에 admin.js와 shop.js를 추가하였다.
여기서 알고 넘어가야 하는 것은
- app.use : 문자열이 일치하는 모든 요청을 처리한다. 예를 들어 path 가 '/test-admin'이고 app.use의 첫번째 인자로 '/test'를 처리하고 있다면 이 코드를 거치게 된다
- app.get : 정확히 경로가 일치하는 get 요청을 처리한다.
- app.post : 정확히 경로가 일치하는 post요청을 처리한다.
2. ./routes/admin.js
const express = require('express');
const router = express.Router();
router.get('/add-product', (req, res, next)=>{
res.send('<form action="/admin/add-product" method="POST"><input type="text" name="title"><button type="submit">add product</button></form>');
});
router.post('/add-product', (req, res, next)=>{
console.log(req.body);
res.redirect('/admin/add-product');
});
module.exports = router;
app.js에서 app.use('/admin', adminRoutes);로 설정했기 때문에 이 라우트에 대해서는 앞에 항상 admin을 포함하고 있다.
그러므로 get('/add-product')는 get('/admin/add-product)와 같다.
3. ./routes/shop.js
const express = require('express');
const router = express.Router();
// router.get : 정확히 경로가 일치할 떄 처리함
// router.use : 패스가 일치할때 예를들면 /로 시작하는 모든 경로의 요청을 처리함
router.get('/', (req, res, next)=>{
res.send(`<h1>hello this is ${req.url} page</h1>`);
});
module.exports= router;
반응형
'Node.js' 카테고리의 다른 글
[Node.js] nodemon 설치 - (0) | 2023.09.20 |
---|---|
[Node.js] Request 처리하기 (0) | 2023.09.20 |
[Node.js] Express에서 REST API 구축하기 (ft. 동빈나쓰앵님) (0) | 2023.09.18 |
[Node.js] server.js 생성하고 서버 구동하기 (0) | 2023.09.18 |
Comments