대딩코딩/웹개발 스터디

[Express] 6. Controller

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

Controller 분리

controllers/homeController.js 파일 생성

 

 파일명: homeController.js

const homeModel = require('../models/homeModel.js'); //호출문이 포함되는 파일의 디렉토리가 변경됐으니 경로도 변경

module.exports = {
    getTopics: async (req, res) => {
        const topics = await homeModel.home(); 
        res.render('index.ejs', {topics: topics});  
    }
}

 

 

 파일명: main.js

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

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

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

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

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

>> view, model, controller를 모두 분리함으로써 MVC architecture를 만들었다고 볼 수 있음

728x90
반응형