본문 바로가기

학원에서 배운 것/node.js10

KDT 5th 웹개발자 입문 수업 34일차 - 2 Multer 파일을 간단하게 업로드하게 해주는 모듈 npm i -S multer 로 설치 파일을 업로드할 때 form 데이터가 단순 텍스트가 아니므로 인코딩 타입 속성을 추가해줘야 한다. enctype="multipart/form-data" 를 추가 이미지 업로드 input 태그의 type 을 file 로 설정 multer 와 fs 모듈 불러오기 const multer = require('multer'); const fs = require('fs'); 저장 설정 - destination : 업로드를 할 폴더 설정 - filename : 파일 이름 설정 한계 설정 - 파일 크기, 이름 같은 제한을 설정 가능 // 파일 업로드 설정 const dir = './uploads'; // 폴더 위치 지정은 상대 경.. 2023. 3. 23.
KDT 5th 웹개발자 입문 수업 33일차 코드 리팩토링 기존 코드를 더 좋게 변경(개선)하는 것 새로운 기능을 추가할 때 예전 기술을 새로운 기술로 변경할 때 기존 코드를 더 가독성이 좋거나 확장성이 좋은 코드로 변경할 때 현재 코드의 문제점은 컨트롤러와 라우터가 중복된 작업을 한다. 하나의 곳에서 처리가 가능한 일을 굳이 둘로 나누어 처리하고 있기 때문에 라우터는 주소 연결만 하도록 만들고, 회원 가입에 대한 처리를 컨트롤러에서 전부 처리하도록 리팩토링해준다. // .eslintrc.js 수정하기 module.exports = { extends: ['airbnb-base'], rules: { 'linebreak-style': 0, 'no-console': 'off', 'operator-linebreak': 'off', 'consistent-r.. 2023. 3. 22.
KDT 5th 웹개발자 입문 수업 31일차 로그인이 되지 않으면 글수정과 글삭제를 불가능하게 만들기 function isLogin(req, res, next) { if (req.session.login === true) { next(); } else { res.send( '로그인이 필요합니다. 로그인 페이지로 이동' ); } } 해당 미들 웨어를 글수정과 글삭제 미들웨어에 넣어줘서 구현해주면 로그인이 되지 않을 때 설정이 가능하다. // 수정 페이지 호출 router.get('/modify/:id', isLogin, (req, res) => { boardDB.getArticle(req.params.id, (data) => { if (data.length > 0) { res.render('db_board_modify', { findArticle: .. 2023. 3. 20.
KDT 5th 웹개발자 입문 수업 30일차 쿠키의 값을 전달 프론트에서 쿠키의 값을 잘라서 쓰기 싫다면 -> 백엔드에서 쿠키의 값을 구하여 프론트에 전달한다. res.cookie(쿠키명, 쿠키값, { 쿠키 옵션 }); res.render() 에 해당 쿠키를 req.cookies.쿠키명으로 접근하여 브라우저에 값을 저장해줄 수 있다. 이때 쿠키 옵션의 httpOnly 를 true로 해주면 프론트에선 접근할 수 없고 백에서만 접근할 수 있는 쿠키가 만들어진다. (쿠키의 값은 전달이 되는거지만, 쿠키의 값이 보이지는 않는다) 쿠키 옵션 1. 쿠키 생존 기간 expires : new Date() 생성자를 사용하여 시간을 지정 ex. expires : new Date(Date.now() + 1000 * 6) -> 6s maxAge : 생성된 시간부터 ms.. 2023. 3. 17.