본문 바로가기

Back-End/Node.js

Express - 14.3. 라우터 - 파일로 분리 - index

반응형

목표

현업에서는 라우트 개수가 1000개 2000개로 엄청 많다. 이를 정리하는 테크닉을 배우자.

(1) 주소체계 변경

(2) 파일로 분리 <-홈 분리하기

 


main.js

var express = require('express');
var app = express();
var fs = require('fs');
var bodyParser = require('body-parser');
var port = 3000;
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('*', function(request, response, next) {
  fs.readdir('./data', function(err, filelist){
    request.list = filelist;
    next();
  });
});

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(port, () => console.log(`Example app listening at http://localhost:${port}`))

routes>index.js

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

// 1. 홈 페이지
// app.get('/', (req, res) => {  res.send('Hello World!')})
router.get('/', function(request, response){
    var title = 'Welcome';
    var description = 'Hello, Node.js';
    var list = template.list(request.list);
    var html = template.html(title, list,
      `<a href="/topic/create">create</a>`,
      `<h2>${title}</h2>${description}
      <img src="/images/hello.jpg" style="width:300px"; display:block; margin-top: 10px;>`
    );
    response.send(html);
});

module.exports = router;
반응형

'Back-End > Node.js' 카테고리의 다른 글

Express - 16. express generator  (0) 2020.09.08
Express - 15. 보안  (0) 2020.09.08
Express - 14.2. 라우터 - 파일로 분리  (0) 2020.09.08
Express - 14.1. 라우터 - 주소체계변경  (0) 2020.09.08
Express - 13. 에러처리  (0) 2020.09.08