EJS : Embedded JavaScript 모듈
특정한 형식의 파일로부터 HTML페이지를 생성하는 모듈
설치 : npm i ejs로 설치한다!
ejs 함수 추가하기 : const ejs = require('ejs');
코드를 만들어보자.
6가지를 require한다.
const express = require('express');
const app = express();
const bp = require('body-parser');
const router = express.Router();
const fs = require('fs');
const ejs = require('ejs');
bodyparser 가져온다.
app.use(bp.urlencoded({extended:false}));
/login이라는 경로를 router로 만든다.
router.route('/login').post((req,resp)=>{
})
ejs1.ejs라는 파일을 같은 경로에 새로 만든다.

ejs1.ejs코드는 아래와 같다.
<!-- 확장자가 ejs임. -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>첫페이지</title>
</head>
<body>
<%
const userid = 'apple';
const username = '김사과'
%>
<h2>EJS 첫 페이지</h2>
<p>아이디 : <%= userid %> </p>
<p>이름 : <%= username %> </p>
<p>성별 :
<select name="" id="">
<option value="남자">남자</option>
<option value="여자">여자</option>
</select>
</p>
<p>
출생년도 :
<select>
<%
for(let i=1970;i<=2022;i++){
%>
<option value="<%=i%>"><%=i%></option>
<%
}
%>
</select>
</p>
</body>
</html>
fs를 통해 이 파일을 읽어오는데, ejs파일이기 때문에 ejs.render(data) 이렇게 읽어와야 한다.
전체 코드 :
const express = require('express');
const app = express();
const bp = require('body-parser');
const router = express.Router();
const fs = require('fs');
const ejs = require('ejs');
app.use(bp.urlencoded({extended:false}));
router.route('/login').post((req,resp)=>{
fs.readFile('./ejs1.ejs','utf-8',(err,data)=>{
if(err){
console.log(err);
}else{
resp.writeHead(200,{'content-type':'text/html'})
resp.end(ejs.render(data));
}
})
})
app.use('/',router);
app.all('*',(req,resp)=>{
resp.status(400).send('<h2>페이지를 찾을 수 없음둥</h2>');
})
app.listen(3000,()=>{
console.log('3000번 포트로 서버 실행중..');
})
두번째 예제로, 메인 코드에서 ejs파일을 호출하는 데, 호출할 때 변수를 전달하는 코드를 써보자.
아래 코드에서 userinfo변수 값을 저장하였다. 그리고
const userinfo = { userid : req.body.userid,
userpw : req.body.userpw
};
ejs를 가져올 때 userinfo값도 전달하였다. 두번째 매개변수로 userinfo를 써주면 이거를 ejs로 보내서 거기서 쓸수 있게 된다.
resp.end(ejs.render(data,userinfo));
메인 코드 :
ejs코드 :
세번째 예제로,2개의 ejs파일을 불러오고 합치는 예제를 만들어볼 것이다.
위에 예제와 비슷하게 변수를 넘겨주는 것인데, body.ejs에다가 header.ejs를 변수로 넘겨줄 수 있음을 알수있다.
메인코드(1_ejs3.js)
body.ejs 코드 :
header.js코드 :
<%= 로 넘기면 < , > 를 < , >로 넘겨준다.
<%- 로 넘기면 우리가 쓴 코드 그대로 넘겨준다.
'Node' 카테고리의 다른 글
| cookie-parser모듈 (0) | 2022.07.04 |
|---|---|
| JSON.parse와 JSON.stringify (0) | 2022.07.04 |
| 미들웨어에 대해 알아보기 (0) | 2022.07.03 |
| 이미지나 음악파일을 보여지게하기(fs.readFile) (0) | 2022.07.03 |
| try catch finally를 이용한 예외처리 (0) | 2022.07.03 |