대딩코딩/웹개발 스터디

[Express] 13. Routing

시데브 2023. 12. 1. 18:58

라우터를 이용해 app. 명령어 간소화

 파일명: main.js

const express = require('express');
const app = express();
const port = 3000;

const bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

app.set('view engine', 'ejs');  
app.set('views', 'views');  


const expressLayouts = require('express-ejs-layouts');
app.use(expressLayouts);
app.set('layout', 'index.ejs');
app.set('layout extractStyles', true); 
app.use(express.static('public'));  

const homeController = require('./controllers/homeController.js');

app.get('/', homeController.getTopics);

//Routers
const topicRouter = require('./routers/topicRouter.js');

app.use('/topic', topicRouter); //'/topic' 형태로 받는 건 전부 topicRouter가 처리

app.listen(port, () => {
    console.log(`Example app listening on port ${port}`);
});

 

 

 파일명: topicRouter.js

const express = require('express');
const router = express.Router();
const topicController = require('../controllers/topicController.js');

router.get('/read/:topic_id', topicController.viewTopic);    
router.get('/create', topicController.createTopic);  
router.post('/create', topicController.createNewTopic); 
router.post('/delete/:topic_id', topicController.deleteTopic);   
router.get('/update/:topic_id', topicController.updateTopic);  
router.post('/update/:topic_id', topicController.updateNewTopic);  

module.exports = router;

 

>> /topic 형태로 받는 건 전부 router가 처리, main.js가 훨씬 가벼워짐

728x90
반응형