[node.js] node.js를 이용한 프로젝트 면접 준비

Hani Kim·2023년 11월 2일
0

개발공부

목록 보기
1/11
post-thumbnail

해당 내용은 제가 node.js를 이용한 프로젝트를 가지고 면접 준비를 할 때 정리했던 내용들 입니다.

Controller에 model import 후 database에 연결하는 법

mongoose function 사용하는 두가지 방법

1) callback function 활용

2) promise 활용

callback

: 무언가가 발생하고 난 다음 호출되는 function

: db오기 전에 rend 되는 걸 막기 위해 함수 안으로 넣어줌. but, 안예쁨. → promise를 쓰는 이유

: 장점 - error를 바로 볼 수 있음

Promise

: callback 의 최신버전

: async / await

: function 앞에 async, promise 객체 앞에 await

: async 가 붙은 함수는 promise 객체를 반환함, await은 promise가 완료될 때 까지 기다림, promiser가 resolve 한 값을 내놓음

: await 은 비동기 function 안에서만 작동 가능

: async의 예외처리

  • promise 객체를 사용하기 때문에 .then / .catch를 사용할 수 있음
  • async는 throw로 예외처리 가능. (함수내에서 await 하는 promise의 예외가 발생하면 throw를 반환)
  • try / catch 가능하지만 반드시 await으로 동기식 변경 해줘야함

ex) export const home = async(req, res) ⇒ {

const videos = await Video.find({});

return res.render(”home”, {pageTitle:”Home”, videos})

map()

: map() 매서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환함.

save()

: promise를 return 함

: javascript에만 존재하는 데이터를 db에 저장하는데 시간이 걸림. = 기다려줘야함

→ async / await으로 기다려주기

javascript data를 db로 옮기는 방법

1) .save() : object - new - save() 필요

2) .create() : object만 필요

정규식 표현

: music.id 표현할 때 사용함

:mongoose의 id 패턴 = 0-9, a-f 까지의 24자리 string

.exist()

: 해당 data가 있는지 검색. db 전체를 가져오지 않아도 돼 유용. (boolean 값 → 뒤에 findByIdAndUpdate())

: but, getEdit 의 역웅 실제 video objectf를 edit 템플릿에 보내줘야 하므로 findById(id) 사용

Mongoose의 middleware

: 데이터를 저장 or 업데이트 하기 전/후에 무언가 처리를 해야할 때 사용

req

  • 라우터로 지정한 :id → req.params
  • pug 파일에서 input으로 받은 내용 (method = “POST) → req.body
  • pug 파일에서 input으로 받은 url (method = “GET”) → req.query

regex 연산자

: mongoDB에서 정규 표현식을 사용하기 위해 쓰는 키워드 (not mongoose)

morgan

: method, route 등을 나타내기 위해 만들었던 middleware들의 기능을 가지고 있음

Pug 쓴 이유

: 기존 js - html - css 로 작업시, request 를 통해 각종 변수를 전달하지 못하기 때문에 미리 정해둔 페이지만 써야함. pug 의 경우 header, footer 등을 따로 partial 하게 만들어 관리하고 모든 파일에 첨부 가능함.

Mixin

: 데이터를 받을 수 있는 partial

ex) 같은 형태를 가지지만 서로 다른 데이터를 가진 patial 만들 때

MongoDB

: document-based

(sql-based가 아님. json처럼 저장 가능)

Mongoose

: node.js 와 mongoDB의 다리 역할

Session

: 백엔드와 브라우저 간에 어떤 활동을 했는지 기억하는 것.

1) 브라우저가 서버에 접근

2) 서버가 브라우저에 cookie 줌

3) 브리우저가 서버에 다시 접글할 때 2에서 받은 cookie 같이 건넴

4) 서버는 cookie를 통해 브라우저 구분

Mongo Store

: session id 는 쿠키에 저장하지만, 데이터 자체는 서버에 저장됨

→ session store 사용해 세션을 db에 저장해야함

→ 세션이 종료되어도 db에 저장되어있기 때문에, 재로그인 했을 때 기억할 수 있음.

profile
Django Fullstack 🍕

0개의 댓글