NodeJS - EJS 버그? 왜 에러 뜨냐고 (오류:require is not defined in ES module scope, you can use import instead)

2023. 4. 21. 00:39Unknown

[배경]

강의를 듣는중 코드를 입력해서 실행하는데 에러가 발생했다. 

눈을 씻고 찾아봐도 코드가 똑같았지만 실행이 되지 않았다.

nodemon도 재설치후 실행해봤고 module도 다시 재설치하고 깔아봤다.

 

하 지 만 !응 안돼 ~~~~~~~~~~~~~~~~~~~~~

 

그래서 주석을 한줄한줄 지워가며 실행했는데 어메? 저거 때매 안된다고?????????????????????????????????????

 

 

[결론]

ejs 파일 안에 <%=%>가 들어간 주석을 달면 에러 발생

 

 

오류코드 : ReferenceError: require is not defined in ES module scope, you can use import instead

 

 

 

js파일 코드

const name = 'apple';
const skills = [
    {name: 'HTML'},
    {name: 'CSS'},
    {name: 'JavaScript'},
    {name: 'Python'},
    {name: 'Nodejs'},
]

//서버 렌더링이라고 한다 !

const server = http.createServer((req,res)=>{
    const url = req.url //사용자의 url를 변수로 저장
    res.setHeader('Content-Type','text/html') // 브라우저 html 해석 준비
    if(url === '/'){
        ejs
        .renderFile('./template/index.ejs',{ name: name }) //name은 백엔드 소스를 ejs에 보여주기 위한 객체(내가 생성 해야되는 것)
        .then((data)=> res.end(data))
        //랜더파일한 데이터를 사용자에게 보내라
    }else if(url ==='/mypage'){
        ejs
        .renderFile('./template/mypage.ejs', {skills: skills})
        .then((data)=> res.end(data))
    }else{
        ejs
        .renderFile('./template/notfound.ejs', {name:name})
        .then((data)=> res.end(data))
    }
    //위 페이지 외에 호출시 notfound.ejs 페이지를 출력
    // xxx님이 요청하신 페이지를 찾을 수 없습니다. (Not found)
});

server.listen(8080); //사용자를 포트8080에서 기다린다.

 

html 코드

<body>
    <h2>Node js로 만든 첫번째 웹 사이트!</h2>
    <p>안녕하세요! <%=name%>님 !</p>
    <!--<%=%>는 서버 코드를 실행하라-->
</body>
</html>

 

느낀점: 이럴거면 주석 처리 왜함?

728x90

'Unknown' 카테고리의 다른 글

MYSQL DB설계 TOOL  (0) 2023.05.11
아스키코드,16진수 변환 사이트 !  (0) 2023.04.24
나만의 VSCODE 셋팅  (0) 2023.04.20
Javascript 혼자 공부 1  (0) 2023.04.19
VSCODE안에서 CMD로 NODEjs 실행하기  (0) 2023.04.18