Nodejs_EJS
2023. 4. 20. 17:33ㆍNodejs
// 템플릿 엔진을 왜 쓰냐?
// javascript는 브라우저에서 실행
// EJS사용시 서버에서 실행 가능
const http = require('http')
const fs = require('fs')
const ejs = require('ejs') // 따로 설치 필요
//설치 법
// package.json 생성 (npm init -y)
// npm i ejs
// 노드몬 설치(개발툴에서) = npm i nodemon --save-dev
// package.json에 들어간다 = "start": "nodemon 1-template"
// html파일을 생성(🔴 확장자는 ejs로)
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에서 기다린다.
728x90
'Nodejs' 카테고리의 다른 글
Nodejs stream (파일 복사하기) (0) | 2023.04.24 |
---|---|
Nodejs 비동기 동기 에러 처리 (0) | 2023.04.24 |
NodeJS 비동기와 동기 + npm + process + path (0) | 2023.04.19 |
Nodejs 1장 OS (0) | 2023.04.18 |
Nodejs 1장 console (0) | 2023.04.18 |