플래시 메시지 문제

2804 단어 expressjavascriptnode
내 주요 app.js
필요('dotenv').config();
const 표현 = 요구('표현');
const 엔진 = require('ejs-mate');
const 경로 = 요구('경로');
const cookieParser = require('쿠키 파서');
const 로거 = 요구('모건');
const favicon = require('serve-favicon');
const bodyParser = require('본문 파서');
const 여권 = require('여권');
const 사용자 = 요구('./모델/사용자');
const 세션 = require('익스프레스 세션');
const 몽구스 = 요구('몽구스');
const methodOveride = require('메소드 재정의');

//여권 및 세션 구성
app.use(세션({
비밀: '슈크리',
다시 저장: 거짓,
저장되지 않은 초기화: 참,
}));

app.use(여권.초기화());
app.use(여권.세션());

여권.사용(User.createStrategy());
여권.serializeUser(User.serializeUser());
여권.deserializeUser(User.deserializeUser());

//지역 변수 미들웨어 설정
app.use(함수(요청, 해상도, 다음) {
//기본 페이지 제목 설정
res.locals.title = '시스템 시스템';
//성공 플래시 메시지 설정
res.locals.success = req.session.success || '';
req.session.success 삭제;
//오류 플래시 메시지 설정
res.locals.error = req.session.error || '';
req.session.error 삭제;
//미들웨어 체인의 다음 함수로 계속
다음();
});

flash-message.ejs 파일

<% if(성공 && 성공.길이) { %>

<%= 성공 %>



<% } %>

<% if(오류 && 오류.길이) { %>

<%= 오류 %>



<% } %>

show.ejs 파일

<% 레이아웃('레이아웃/쇼 후 레이아웃') -%>

가격: <img src="<%=%20image.url%20%>" alt="서프보드 이미지"> <a href="/posts/<%=%20post.id%20%>/edit"> <button>수정</button> </a> show-post-layout.ejs 파일 <!DOCTYPE HTML> 문서 <% 포함 ../partial/navbar %> <% 포함 ../partial/flash-message %> <%- 본문 -%> <br> var 게시물 = <%- JSON.stringify(게시물) %>;<br> 컨트롤러 post.js 파일 // 게시물 생성 비동기 postCreate(req, res, next) { req.body.post.images = []; for(req.files의 const 파일) { let image = cloudinary.uploader.upload(file.path)를 기다립니다. req.body.post.images.push({ URL: image.secure_url, public_id: image.public_id }) } let 응답 = geocodingClient를 기다립니다. .forwardGeocode({ 쿼리: req.body.post.location, 제한: 1 }). 보내다(); req.body.post.coordinates = response.body.features[0].geometry.coordinates; 게시하자 = Post.create(req.body.post)를 기다립니다. req.session.success = '게시물 생성 성공!'; res.redirect( /posts/${post.id} ); },

좋은 웹페이지 즐겨찾기