카테고리 없음

32 :: 템플릿 엔진, CRUD, Pagination, PM2

HJPlumtree 2021. 12. 8. 13:08

엘리스 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 문법

elice

each ~in, if else 등

each ~in은 for문으로 보이네

elice

 

 

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

 

 

어제 한 내용을 복습

라우터 연결과 쿼리 사용법에

조금 눈이 트인것 같은 기분이 들기도 하다

 

 

https://www.guru99.com/what-is-backend-developer.html