글로벌 변수를 활용하면 전역적으로 사용할수 있는 정보 (로그인유무)등을 활용하여 전역적으로 활용 할 수 있다.
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 |