코딩/expressJs 7

퍼펫티어와 cheerio 간단하게 익히기 : 스크래핑을 해보자

퍼펫티어(Puppeteer) 번역하면 인형극 이라고 한다. Chrome 팀이 개발한 Node 라이브러리 Headless chrome을 제어 할 수 있다. 고로 puppeteer 를 사용하기 위해서는 Chrome 이나 Chromium 이 필요하다. https://developer.chrome.com/docs/puppeteer/ Puppeteer - Chrome Developers Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can also be configured to use full (non-headless) Chrom..

코딩/expressJs 2022.06.29

JWT 사용 정리

✔ 공부하면서 중요하다고 생각한 부분 - 토큰은 탈취될 가능성이 있기에 탈취 방지/탈취 당했을 경우를 염두해야 한다! ex) CSRF 방지 XSS 방지 등 ✔ 방법 1. Access Token만 사용할 경우 1) HTTP ONLY 옵션 걸기 2) 토큰발행시 개인을 식별할 수 있는 정보를 암호화 하여 payload에 넣기(IP 혹은 UUID 등) 3) 주기를 짧게 하기 2. Access Token과 Refresh Token 사용하기 1) 로그인을 할경우 Access Token / Refresh Token을 발급하고 저장 2) access token 만료시 refresh token을 이용해 access token 재발급 *이 때, refresh_token도 재발급하면 좋다고 한다. Q. Refresh Tok..

코딩/expressJs 2022.05.03

express) Cookie와 Session쓰기

HTTP 프로토콜 두가지 특징 - 무상태(Stateless) : 서버는 클라이언트의 상태를 보존하지 않는다(클라이언트의 상태를 모른다) - 비연결성(Connectionless) : 클라이언트 요청에 대해 서버가 응답을 마치면 맺었던 연결을 끊어 버린다. 을 보충하여 상태를 계속 유지하기 위해 위해 사용하는 기능 쿠키 - 쿠키는 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일 - 클라이언트의 상태 정보를 로컬에 저장했다가, 요청할 때 참조된다. - 세션 관리(Session management)서버에 저장해야 할 로그인, 장바구니, 게임 스코어 등의 정보 - 관리개인화(Personalization)사용자 선호, 테마 등의 세팅 - 트래킹(Tracking)사용자 행동을 ..

코딩/expressJs 2022.04.16

Sequelize를 적용해보자(진행중)

✔ 사전적 의미 : 속편화 하다. 후속작을 만들다. ✔ 공식 홈페이지의 설명(https://sequelize.org/) Sequelize는 Postgres, MySQL, MariaDB, SQLite 및 SQL Server 등을 위한 최신 TypeScript 및 Node.js ORM입니다. 견고한 트랜잭션 지원, 관계, 열망 및 지연 로딩, 읽기 복제 등을 제공합니다. ORM(Object Relational Mapping) - 객체 지향 프로그래밍 언어 를 사용하여 호환되지 않는 유형 시스템 간에 데이터를 변환 하는 프로그래밍 기술 - 여기서는 객체와 RDBMS의 데이터를 자동으로 연결해주는 것 즉, ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 객체 지향적인 코드를 생산할 수 있다...

코딩/expressJs 2022.04.04

Nginx에서 reverse proxy 설정중 문제(해결중)

의문점 express 서버에서의 index.js nginx서버에서 reverse_proxy 설정을 위해 타이핑한 코드 server_name을 입력하고 진입했을때 '/' 경로는 정상 노출되나 애플리케이션 단계에서 '/post' 와 '/users'로 URL을 분리하여 처리 했는데, 이걸 server_name/post 으로 접근 했을 경우 경우 404 not found error 가 노출 된다. 이 상태에서 라우트 경로를 사용할 수 있는 방법 무엇이 있을까? 1. /user 와 /post에 대한 location을 지정한다 location /user { proxy_pass http://(ip주소:포트번호)/user } location /post { proxy_pass http://(ip주소:포트번호)/post ..

코딩/expressJs 2022.03.20

expressjs의 mergeParams 사용해보기(매우 간단)

- 계층 구조의 라우터를 사용 할 때 사용 - 하위 라우터(혹은 자식 라우터)가 상위 라우터(부모 라우터)의 req.params 값을 유지하는 것 - 라우터로 별개의 파일에서 라우팅을 하는데, 상위 라우터의 파라미터가 필요한 경우에 사용함 ex) 포스트와 댓글 달기 / 여러개의 카테고리와 그 카테고리에 속한 게시글 등등 https://expressjs.com/ko/api.html 에서는 이렇게 설명 하고 있다. 1) 선언하기 child router 파일에 선언 const router = express.Router({ mergeParams: true }); 2) 사용하기(게시글과 그 게시글에 속한 댓글을 만들 경우) /*post.js 라우터(parent) */ const commentroute = requ..

코딩/expressJs 2022.02.03

nodejs express 로 아~주 기본적인 라우팅 설정 해보기(with Mysql)

- Route : 노선 - 라우팅(routing)이란? 1) 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정 2) 기본적으로 어플리케이션 서버에서 목적지 까지 경로를 제어하는 것 3) 클라이언트로부터 요청받은 URL과 뷰를 매칭시키는 것 index.js var express = require('express'); const router = express.Router(); const mysql = require('mysql'); const db = mysql.createConnection({ host: 'localhost', user: '아이디입력', password: '비밀번호입력', database: '사용하고자하는 db입력', port: 포트입력 }); /* GET home ..

코딩/expressJs 2021.12.23