본문 바로가기

Node.js/node 기초

express 글로벌 변수및 404, 500 에러 핸들링

반응형

글로벌 변수를 활용하면 전역적으로 사용할수 있는 정보 (로그인유무)등을 활용하여 전역적으로 활용 할 수 있다.

const express = require('express');
const nunjucks = require('nunjucks');
const logger = require('morgan');
// const bodyParser = require('body-parser');

const admin = require('./routes/admin');
const contacts = require('./routes/contacts');

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

nunjucks.configure('template', {
    autoescape: true,
    express: app,
});

//미들 웨어 셋팅
app.use(logger('dev'));
// app.use(bodyParser.json());
// app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use('/uploads', express.static('uploads')); //정적파일 url, 폴더명 순
//글로벌 변수
app.use((req, res, next) => {
    app.locals.isLogin = false;
    next();
});

function vipMiddleware(req, res, next) {
    console.log('최우선 미들웨어');
    next();
}

app.get('/', (req, res) => {
    res.send('hello express');
});

//app.use를 활용해서 admin 라우팅 정보를 불러온다
app.use('/admin', vipMiddleware, admin);

app.use('/contacts', contacts);

app.use((req, res, _) => {
    res.status(400).render('common/404.html');
    res.status(500).render('common/500.html');
});

app.listen(port, () => {
    console.log('express listening on port');
});

app.locals.변수 이름 = 값 으로 로컬 변수를 설정해줄수 있다.

app.use((req, res, next) => {
    app.locals.isLogin = false;
    next();
});

 

res의 status에 따라 render를 그려주는 방식으로 진행할 수 있다.

app.use((req, res, _) => {

    res.status(400).render('common/404.html');

    res.status(500).render('common/500.html');

});

 

 

반응형

'Node.js > node 기초' 카테고리의 다른 글

express 정적 파일 생성하기  (0) 2020.05.15
미들웨어(middleware)  (0) 2020.05.15
http 내장모듈을 활용한 서버 구축하기  (0) 2020.05.05
node dns  (0) 2020.05.04
node EventEmitter  (0) 2020.05.04