Node.js ejs 관련 질문입니다. 채택완료
조윤진
5년 전
조회 5,139
ejs를 사용하려고 res.locals를 통해 ejs 안에서 사용될 변수를 넣었는데,
(res.locals.is_mobile 변수. 원래 이렇게하면 템플릿에서 is_mobile 변수를 사용할수 있어야함)
(+ req.query 는 원래 req.param() 함수로 하는건데 deprecated 떠서...)
(+ cfg.etc.m_agent 는 윗줄에서 선언했던 변수입니다)
</p>
<p>// 모바일(스마트폰) 기기로 접속했는지 여부 확인</p>
<p>app.use((req,res,next) => {</p>
<p> let mobile = new RegExp(cfg.etc.m_agent,'ig');</p>
<p> let is_mobile = (req.session.device) ? req.session.device == 'mobile' : mobile.test(req.header('User-agent'));</p>
<p> </p>
<p> // get변수를 통해 디바이스설정을 바꿀 수 있도록 설정</p>
<p> if(req.query.device){</p>
<p> is_mobile = (req.query.device == 'mobile');</p>
<p> }</p>
<p> </p>
<p> if(is_mobile) req.session.device = 'mobile';</p>
<p> else req.session.device = 'pc';</p>
<p> res.locals.is_mobile = req.is_mobile = is_mobile;</p>
<p> next();</p>
<p>});</p>
<p>
해당 변수가 선언되지 않았다는 (ReferenceError) 에러가 납니다.
(아래는