티스토리 뷰

const router = express.Router();

  • 기존에 app = express() 그리고 app.use()로 했던 라우팅을 모듈화하기 위해 사용한다.
  • 기존 app과 동일하게 라우팅을 한다.
  • 리퀘스트를 받는 메서드로 use, get, post 가 있는데, use는 get post를 모두 받고, get과 post는 같은 path를 받더라도 다른 라우팅으로 구분된다.
  • 인자는 'path 이름'과 콜백 함수이다.
  • 메인 앱에서는 해당 라우트 파일을 import 해주고, app.use인자로 import해준 변수를 넣어주면 된다. 인자 앞에 특정 path이름을 넣어주면, 해당하는 공통 path로만 시작하는 path로 보내지고, 그 path에 해당하는 라우트 get 이나 post에서는 url path 구분시 공통 path를 생략할 수 있다.
  • 라우팅하는 파일에서는 꼭 module.exports=router; 를 해준다. 이를 통해 메인 앱에서 import가 가능하다.

main 앱

const path =require('path');

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

const adminRoutes = require('./routes/admin');
const shopRoutes = require('./routes/shop');

app.use(bodyParser.urlencoded({extended: false})); //parser

app.use('/admin',adminRoutes); // '/admin' 으로시작하는 path만 보내진다.
app.use(shopRoutes);

app.use((req,res,next)=>{
    res.status(404).send('page not found');
});


app.listen(3000);

 

 

admin 라우트

const express = require('express');

const router = express.Router();

// /admin/add-product  => GET
router.get('/add-product',(req,res,next)=>{
  res.send('<h1>hi</h1>');
});

// /admin/add-product  => POST
router.post('/add-product',(req,res,next)=>{ //get과 post방식으로 다르기때문에, 같은 path를 써도 상관없다. 
    console.log(req.body);
    res.redirect('/');
});

module.exports = router;

 

shop 라우트 (기본페이지)

const express = require('express');

const rootDir = require('../util/path');

const router = express.Router();

router.get('/',(req,res,next)=>{

    res.send('<html>hello</html>');
});


module.exports=router;

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함