nodemon 설치 및 실행
2021. 5. 24. 20:34
프로그래밍/NodeJS
🔧 설치하기 다음 명령어를 이용하여 설치한다. (-dev를 붙이면, development mode, 즉 local에서만 사용하겠다는 의미) npm i -D nodemon 🔧 설정변경 // packge.json "scripts": { "dev": "nodemon app" }, 🔧 실행하기 이후 실행시 node app이 아니라 nodemon app으로 실행됨 npm run dev
MySQL과 시퀄라이즈 연결하기
2021. 5. 21. 20:38
프로그래밍/NodeJS
1. MySQL 설치 & workbench 설치 https://dev.mysql.com/downloads/ MySQL :: MySQL Community Downloads The world's most popular open source database dev.mysql.com MySQL Community Downloads에서 MySQL installer for Windows 설치 혹은 MySQL Community Server 설치 + MySQL Workbench 설치 2. MySQL 조작하기 1️⃣ sequelize, sequelize-cli, mysql2 설치 npm i sequelize sequelize-cli mysql2 여기서 mysql2는 node와 mysql을 연결해주는 driver임 sequ..
morgan 설치 및 사용
2021. 5. 20. 20:18
프로그래밍/NodeJS
morgan❓ NodeJS 서버로 구성된 웹 환경에서는 로그(log)를 관리하기 위한 별도의 서드파티 라이브러리나 툴을 사용할 것을 권장 👉 그 중 많이 사용하는 것이 morgan 로그 관리를 쉽게 하기 위해 사용함(환경에 따른 여러 설정 확인 등) 프론트에서 백엔드로 요청을 보낼때 어떤 요청들을 보냈는지 확인 가능 백엔드에서 디버깅하기 편리함 1️⃣ morgan설치 npm i morgan 2️⃣ import const morgan = require('morgan'); 3️⃣ 사용하기 app.use(morgan('dev')); 4️⃣ 실행 npm run dev
Offset-based & Cursor-based Pagination
2021. 5. 19. 20:42
프로그래밍/NodeJS
❓ Pagination (페이지네이션) 보통 서버에서 데이터를 가져올 때 모든 데이터를 한번에 가져올 수 없음 따라서 서버의 입장에서도 클라이언트의 입장에서도 특정한 정렬 기준에 따라 + 지정된 갯수 의 데이터를 가져오는 것이 필요 이를 흔히 '페이지네이션(Pagination)'이라고 표현하는데, 페이지네이션은 아래와 같은 두가지 방식으로 처리가 가능함 1️⃣ 오프셋 기반 페이지네이션 (Offset-based Pagination) DB의 offset 쿼리를 사용하여 '페이지' 단위로 구분하여 요청/응답하게 구현 2️⃣ 커서 기반 페이지네이션 (Cursor-based Pagination) 클라이언트가 가져간 마지막 row의 순서상 다음 row들을 n개 요청/응답하게 구현 Offset Pagination으로..
도메인이 다를때 쿠키 전달 방법
2021. 5. 18. 22:19
프로그래밍/NodeJS
cors를 활용하여 쿠키 전달 도메인이 다르면 쿠키도 전달 안됨 쿠키를 다른 도메인간에 전달을 하고 싶으면 cors활용하기 1️⃣ app.js에서 credentials: true 추가하기(기본값은 false) app.use(cors({ origin: '*', credentials: true, })); 2️⃣ 프론트엔드 axios사용하는 곳에서도 3번째 인자로 withCredentials: true 추가해주기 function addCommentAPI(data) { return axios.post(`/post/${data.postId}/comment`, data, { withCredentials: true, }); } 3️⃣ 프론트엔드 saga 공통부분 모아놓은 index.js에 axios.defaults...
dotenv로 환경변수 관리
2021. 5. 17. 21:17
프로그래밍/NodeJS
하드코딩으로 비밀번호 등의 정보를 저장 해놨을 경우 보안상의 문제가 있을 수 있어 dotenv를 사용 소중한 정보들은 dotenv에 저장해놓고 사용할 수 있음 설치 npm 패키지 매니저를 이용하여 dotenv 라이브러리를 Node.js 프로젝트에 설치 npm i dotenv .env 파일 생성 및 작성 dotenv 라이브러리는 디폴트로 현재 디렉토리에 위치한 .env 파일로 부터 환경 변수를 읽어옴 backend 폴더 안에 new file 👉 .env 파일 생성 필요한 환경 변수를 키=값의 포멧으로 나열 .env 변수 처리할 패스워드 입력 👇 COOKIE_SECRET=cookie123 DB_PASSWORD=db123 사용하기 1️⃣ 사용할 페이지에 import 및 설정 const dotenv = requ..
express 사용하여 get, post, delete 요청
2021. 5. 4. 20:12
프로그래밍/NodeJS
get, post, delete 요청(라우터 추가) 데이터는 보통 json으로 표현함 const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('hello express'); }); app.get('/api', (req, res) => { res.send('hello api'); }); app.get('/api/posts', (req, res) => { res.json([ { id: 1, content: 'hello1' }, { id: 2, content: 'hello2' }, { id: 3, content: 'hello3' }, ]) }); app.post('/api/post', (req..
express로 라우팅하기
2021. 5. 4. 20:00
프로그래밍/NodeJS
1. express 설치 터미널에서 express 설치 express도 내부적으로 http를 사용하기 때문에 서버를 돌릴 수 있는 것임 서버를 돌리려면 http를 써야함(node가 서버가 아니라 node가 제공하는 http모듈이 서버임) npm i express 2. 호출해주기 // back/app.js const express = require('express'); const app = express(); app.get('/', (req, res) => { // get은 메서드 '/'은 url res.send('hello express'); }); app.get('/api', (req, res) => { res.send('hello api'); }); app.listen(3065, () => { con..