express - Router ; 파일로분리 - index ( Router 파일 분리 최종편 )

YoonJu Lee·2021년 7월 20일
0

Node.js

목록 보기
7/10

홈 화면 index.js파일로 분리.

1. routes 폴더 안에 index.js 파일 생성.

2. index.js 파일에 홈페이지 코드 이주.(기본 셋팅)

< index.js >

  1. main.js에서 홈페이지 코드 이전.
app.get('/', (request, response) => {
  var title = 'Welcome';
  var description = 'Hello, Node.js';
  var list = template.list(request.list);
  var html = template.HTML(title, list,
    `<h2>${title}</h2>${description},
    <img src="/images/hello.jpg" style="width:400px; display:block; margin-top:10px">`,
    `<a href="/topic/create">create</a>`
  );
  response.send(html);

})
  1. 코드 추가.
    1) 맨 위
var express = require('express');
var router = express.Router();

2) 맨 아래

module.exports = router;

< main.js >

1) 맨 위에 추가.

var indexRouter = require('./routes/index')

2) 중간에 router.use 라우터 추가.

router.use('/', indexRouter);

3. 필요한 모듈들 추가.

< index.js >

  • 맨 위에 추가
var template = require('../lib/template.js');

4. 최종 코드

< main.js >


const express = require('express')
const app = express()
var fs = require('fs');
var bodyParser = require('body-parser')
var compression = require('compression')


var indexRouter = require('./routes/index')
var topicRouter = require('./routes/topic')


app.use(express.static('public'))
app.use(bodyParser.urlencoded({ extended: false }))
app.use(compression());
app.get('*', (request, response, next) => {
  fs.readdir('./data', (error, filelist) => {
    request.list = filelist;
    next();
  })
})


// index.js파일에 홈페이지 화면 라우터 분리
app.use('/', indexRouter);

app.use('/topic', topicRouter);



app.use(function (req, res, next) {
  res.status(404).send('Sorry cant find that')
});

app.use(function (err, req, res, next) {
  console.error(err.stack)
  res.status(500).send('Something broke!')
})

app.listen(3000, () => {
  console.log('Example app listening on port 3000!')
})

< index.js >

//  홈 화면 코드 이주.

var express = require('express');
var router = express.Router();
var template = require('../lib/template.js');



router.get('/', (request, response) => {
  var title = 'Welcome';
  var description = 'Hello, Node.js';
  var list = template.list(request.list);
  var html = template.HTML(title, list,
    `<h2>${title}</h2>${description},
    <img src="/images/hello.jpg" style="width:400px; display:block; margin-top:10px">`,
    `<a href="/topic/create">create</a>`
  );
  response.send(html);

})

module.exports = router;

라우터를 파일별로 분리한 이유!

: main.js 코드는 활용도가 높은 코드이다.
이 코드가 복잡하면 집 대문이 복잡한 것 마냥 좋지 않다.
따라서 router 라는 기능을 활용하여 깔끔하게 파일로 서로 연관된 라우터들을 쪼개어 정리 정돈 한 것.

profile
Coder가 아닌 Engineer를 향해서.

0개의 댓글