엘리스 SW 엔지니어 트랙 32일차
온라인 강의날🦁🦁🦁
오늘 내용
Template Engine
Express.js의 PUG Template Engine
CRUD
게시판 만들기
PM2 Process Manager
Node.js 어플리케이션 관리
Template Engine(템플릿 엔진)
서버에서 클라이언트에 보낼 HTML 형태를 미리 템플릿으로 저장
동작할 때는 템플릿에 데이터 넣어서 HTML 만든다
템플릿 작성 문법과 템플릿을 HTML으로 변환하는 기능 제공한다
종류
EJS, Mustache, Pug 등 있다
Pug
들여쓰기 표현식, 가독성 좋아 개발 생산성 좋다고 한다
layout,, include, mixin 등 강력한 기능 제공
Pug 문법
each ~in, if else 등
each ~in은 for문으로 보이네
CRUD
데이터 다루는 4가지 기본 기능
Create: 만들고
Read: 읽고
Update: 수정하고
Delete: 지우고
Async Request Handler
Async를 좀 더 편리하게 사용할 수 있는 방법
이렇게 만들어 놓고
module.exports = (requestHandler) => {
return async (req, res, next) => {
try{
await requestHandler(req, res)
} catch (err) {
next(err)
}
}
}
원하는 곳에서 require에서 사용한다
const asyncHandler = require('../utils/async-handler');
try catch가 필요없고, express 오류 잡기에도 좋다고 한다
router.post('/', asyncHandler(async (req, res) => {
const { title, content } = req.body;
if (!title || !content) {
throw new Error('제목과 내용을 입력해 주세요');
}
const post = await Post.create({ title, content });
res.redirect(`/posts/${post.shortId}`);
}));
Pagination(페이지네이션)
페이지 나누는거
데이터를 균일한 수로 나누어 페이지 분리
MongoDB에서는 limit과 skip 사용
PM2 Process Manager
Node.js 작업 관리해주는 매니저
node 명령어 실행 시 오류 발생, 실행 상태 관리 할 수 없다
작업 관리 위해 다양한 기능 제공
PM2 사용이유
오류 발생시 자동 재실행
소스 코드 변경시 자동 재실행
배포시 pm2에서 프로세스 한번에 관리
pm2 설정파일 예제 만들기
pm2 init simple | pm2 init
예제 수정해서 설정파일 생성하고
pm2 start
확인 명령어
pm2 status
pm2 monit
어제 한 내용을 복습
라우터 연결과 쿼리 사용법에
조금 눈이 트인것 같은 기분이 들기도 하다