일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- g++ 업데이트
- c++ 정규식
- python popen
- python os
- grafana dashboard
- snmp
- 정규식 활용
- 백준
- c3 step graph
- c3 초
- snmp test
- regex_search
- linux시간으로 변경
- selinux port 등록
- python subprocess
- 1697
- centos pyhon 설치
- c3 축 없애기
- semanage
- 정규식 문자열 출력
- telegraf
- gcc 업데이트
- CentOS7
- influxdb 설치
- 정규식 컴파일
- c3 축 가리기
- gcc regex
- c3 second
- subporcess path
- InfluxDB
- Today
- Total
리셋 되지 말자
[NodeJS] Connect-flash 본문
1회성 메시지 기능
1회성으로 메시지를 보내는 모듈인 Connect-flash에 대해 알아본다. Passport와는 관계없지만, passport 공식문서에도 나와있다.
connect-flash 설치
(github.com/jaredhanson/connect-flash)에서 설치 방법 및 사용방법을 알 수 있다.
npm install --s connect-flash
connect-falsh 선언 및 use
const express = require('express')
const app = express()
const port = 80
var compression = require('compression')
var bodyParser = require('body-parser');
var pageRouter = require('./routes/page');
var indexRouter = require('./routes/index');
var authorRouter = require('./routes/author');
var authRouter = require('./routes/auth');
var helmet = require('helmet')
var session = require('express-session');
var FileStore = require('session-file-store')(session);
var flash = require('connect-flash');
app.use(helmet());
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(compression());
app.use(session({
secret: 'sknfienf123',
resave: false,
saveUninitialized: true,
store:new FileStore()
}))
app.use(flash());
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
session을 사용하므로 반드시 session use 다음에 use해준다.(미들웨어는 실행 순서가 중요하다)
예제 테스트
app.use(flash());
app.get('/flash', function(req, res){
// Set a flash message by passing the key, followed by the value, to req.flash().
req.flash('info', 'Flash is back!')
res.send('flash');
});
app.get('/flash-display', function(req, res){
// Get an array of flash messages by passing the key to req.flash()
res.render('index', { messages: req.flash('info') });
});
flash는 request객체에 flash()라는 메서드를 추가해준다. 위처럼 예제 코드를 붙여넣어 준다.
접속 및 session 확인
cookie에 "flash"라는 속성이 추가된 것을 확인할 수 있다. 이 상태에서 '/flash'로 접속해본다.
"flash" 속성 안에 "info"라는 이름으로 "Flash is back!"이라는 메시지가 추가된 것을 확인할 수 있다.
flash message 사용하기
app.get('/flash-display', function(req, res){
var fmsg = req.flash();
console.log(fmsg);
res.send(fmsg);
});
/flash-display로 접속했을 때, 위처럼 동작하도록 입력해준다. 그리고 웹서버를 재시작한 뒤 /flash에 다시 접속한다.
그러면 session에 있는 "flash"속성에 "info" 메시지가 있는 상태로, /flash-display로 접속한다.
- 결과
"info" flash 메시지가 페이지에 출력되고, 콘솔에서도 출력되는 것을 볼 수 있다. 그런데 session의 "flash"항목에 "info" 메시지가 삭제된 것을 확인할 수 있다.
이처럼 var fmsg=flash(); 와 같이 flash()를 실행하게 되면 메시지가 session에서 삭제되는 것을 알 수 있다.
메시지가 삭제된 상태에서 다시 /flash-display로 접속하면 위와같이 빈 fmsg를 확인할 수 있다.
'NodeJS > 생활코딩' 카테고리의 다른 글
[NodeJS] Passport 로그아웃 (0) | 2020.10.05 |
---|---|
[NodeJS] Passport 로그인 확인 (0) | 2020.10.05 |
[NodeJS] Passport 세션이용 (0) | 2020.09.28 |
[NodeJS] Passport 인증 구현 및 자격 확인 (0) | 2020.09.28 |
[NodeJS] Passport 설치 (0) | 2020.09.28 |