• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

TypeError: req.flash is not a function

19.04.29 14:19 작성 조회수 624

2

이 에러가 계속떠서 에러위치 찾아보니깐 req.flash사용한 부분에서 에러가 나는데

필요한 모듈설치와 미들웨어 설정도 했는데 왜이런가요?

답변 5

·

답변을 작성해보세요.

2

GentleM님의 프로필

GentleM

2020.06.24

저도 같은 에러 발생했습니다. 오타는 아니였고, 강사님 말씀대로 stackoverflow 답변 참고했습니다.

var flash = require('connect-flash'); 

위 코드 아래

app.use(flash()) 사용하니까 문제 해결됐습니다.

2

어떤 상황인지 정확히는 모르지만, 여기 답변을 참고해보세요. (두번째 답변을 먼저 확인하시면 좋을거 같네요)

 

https://stackoverflow.com/questions/34310348/passport-and-connect-flash-req-flash-is-not-a-function

 

1

jeidiiy님의 프로필

jeidiiy

2020.12.08

app.use(router); 구문을 다른 app.use() 구문들의 최하단으로 옮겨보세요

PennyBlack2008님의 프로필

PennyBlack2008

2021.05.19

이게 왜 되는 지 모르겠습니다. 저의 경우에도 이런 식으로 해결했어요.

스택오버플로우에서는 app.use(flash) 를 좀 더 위로 옮겨라고 하는 데, 자꾸 안되어 답답했어요. 

덕분에 계속하게 될 수 있게 됐습니다. 감사합니다.

0

PennyBlack2008님의 프로필

PennyBlack2008

2021.05.19

/* ejs template engine set, ejs 말고도 pug, jade 등이 있다. */
app.set('view engine', 'ejs')
/* middleware strategy 설정 */
app.use(session({
	secret: 'keyboard cat',
	resave: false,
	saveUninitialized: true
}))
app.use(passport.initialize())
app.use(passport.session())
/* main router 설정 : 다른 파일로 옮겨서 라우팅하려면 이런식으로 해야함 */
app.use(router)

다음과 같이 app.use(router)를 맨 밑으로 설정하면 됩니다.

강의제목: passport기반 세션처리 으로 미리 가보시면, 6분 59초에 crong 님의 app.js 에서 코드가 이런식으로 되어있습니다.

0

이주호님의 프로필

이주호

2020.03.08

app.js 아니면 index.js에 오타가 나서 에러가 뜨는 겁니다.