Node.js ejs 관련 질문입니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
Node.js ejs 관련 질문입니다.

QA

Node.js ejs 관련 질문입니다.

본문

ejs를 사용하려고 res.locals를 통해 ejs 안에서 사용될 변수를 넣었는데,

(res.locals.is_mobile 변수. 원래 이렇게하면 템플릿에서 is_mobile 변수를 사용할수 있어야함)

(+ req.query 는 원래 req.param() 함수로 하는건데 deprecated 떠서...)

(+ cfg.etc.m_agent 는 윗줄에서 선언했던 변수입니다)

 


// 모바일(스마트폰) 기기로 접속했는지 여부 확인
app.use((req,res,next) => {
    let mobile = new RegExp(cfg.etc.m_agent,'ig');
    let is_mobile = (req.session.device) ? req.session.device == 'mobile' : mobile.test(req.header('User-agent'));
    
    // get변수를 통해 디바이스설정을 바꿀 수 있도록 설정
    if(req.query.device){
        is_mobile = (req.query.device == 'mobile');
    }
    
    if(is_mobile) req.session.device = 'mobile';
    else req.session.device = 'pc';
    res.locals.is_mobile = req.is_mobile = is_mobile;
    next();
});

 

해당 변수가 선언되지 않았다는 (ReferenceError) 에러가 납니다.

(아래는 <style> 태그 안에있는 css 구문에서 is_mobile 을 사용하다가 난 에러 메시지)

 


/*
ReferenceError: /mnt/HDD2/node_sockets/dev_servers/gozaboard/assets/views/error.ejs:11
     9 |     white-space:pre-wrap;
    10 |     word-break:break-all;
 >> 11 |     <% if(is_mobile){ %>
    12 |     font-size:0.6em;
    13 |     <% } %>
    14 | }
is_mobile is not defined
*/

 

어떻게 해야 되나요?

이 질문에 댓글 쓰기 :

답변 4

is_mobile is not defined   라고 하잖아요.. 

정의 안되었다하니. 왜그런지 확인해야겠죠.. 에러내용에 항상 답이 있다

어려운 질문인 것 같습니다. 답변을 위해서 EJS를 사용해 볼까 생각해 보다가,  

 

이것은 큰 그림이 아닌 것 같아서 답변드립니다. 참조 글(https://sir.kr/cm_free/1562537)

 

주제넘지만, 우선 큰 방향성에 별 도움이 안되는 프레임 워크같습니다.

 

확장성, 편의성등 여러가지를 고려한다면 다른 솔루션으로 배우는 것을 추천드립니다. 

 

(이 방향이 맞는지는 아루래도 2-3년후에 결정이 날 것 같습니다.)

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT