본문 바로가기

STUDY/Node.js

(28)
Node.js | Session 알아보기(express-session) 1. 설치 express-session이라는 미들웨어를 설치해줍니다. express-session은 Node.js의 프레임워크인 Express를 사용할 때 세션을 관리할 수 있도록 하는 미들웨어임 $ npm install express-session 2. 사용준비 sercret: 반드시 필요한 옵션으로 세션을 암호화하여 저장함 resave: 세션이 변경되지 않아도 계속 저장됨(덮어쓰기) 기본 값은 true이지만 false로 사용할 것을 권장하고있음 saveUninitialized: 세션을 초기값이 지정되지 않은 상태에서도 미리 만들어 저장함 세 옵션은 기본적으로 요구되는 옵션으로, 특별한 경우가 아니라면 기본적으로 세 옵션을 모두 사용하면 된다. var session = require('express-s..
Node.js | 쿠키(cookie) 알아보기 (쿠키를 이용한 ID저장하기) 1. cookie-parser 설치 만약 express generator를 이용했다면 기본적으로 설치되어 있으니 생략 가능하다. $ npm install cookie-parser 설치한 cookie-parser를 사용하기 위한 준비 var express = require('express') var cookieParser = require('cookie-parser') var app = express() app.use(cookieParser()) 2. cookie 생성 쿠키를 생성하는 코드는 다음과 같다. request가 아닌 response! res.cookie('cookieName', 'cookieValue') +) 생성된 쿠키확인 req.cookies +) Session cookie / Permane..
Node.js | Express generator 간단 구조 파악 + PM2사용 ※Express generator 이전 글 참고 우선, Express generator를 이용한 프로젝트 기본 구조(view의 형식을 ejs로)를 생성합니다. $ npm express 프로젝트명(폴더명) --view=ejs Express generator로 생성된 기본 구조를 간!단!히 알아보자면, bin/www: 포트번호, 서버가 생성되는 곳 public: css, image, javascript 등 정적인 파일들을 담는 곳 routes: 라우터들을 관리하는 곳 views: view 파일들을 관리하는 곳 app.js: 미들웨어 부분 +) PM2 사용 package.json을 아래와 같이 수정해 줍니다. "start": "pm2 start ./bin/www", "stop": "pm2 stop ./bin/..
Node.js | MySQL 연동 ※ 현재 사용하고 있는 MySQL의 버전은 8.0.18버전으로, MySQL과 연동할 때 오류가 발생할 수 있다. 이유는 이전 버전과 최신 버전의 비밀번호 형식이 변경되어서 라고 하는데... 아래 링크를 참고하면 해결 가능하다. MySQL 8.0 - Client does not support authentication protocol requested by server; consider upgrading MySQL client I am a node.js and MySQL beginner and I just started setting up and trying out some basic code. However, I can't make even a simple connection to the server f..
Node.js | Express application generator Express application generator Express application generator Use the application generator tool, express-generator, to quickly create an application skeleton. You can run the application generator with the npx command (available in Node.js 8.2.0). $ npx express-generator For earlier Nod expressjs.com application generator를 사용하면 빠르게 프로젝트에 필요한 기본 뼈대를 자동으로 생성해줍니다. 매우 편 리 한 것... 새로운 프로젝트를 만들 때 마다 vie..
Node.js | Express Router (라우터 분리하여 관리하기) Node.js의 프레임워크인 Express에서는 Router를 따로 분리하여 관리할 수 있다. 공식 document를 살펴보면 1. 분리해서 관리할 router들을 모아놓는 파일에 express 모듈을 추가하고, express 내의 Router를 이용 변수명을 router로 써서 그렇지 기존에 쓰던 app이랑 똑같다고 생각하면 쉽다. var express = require('express'); var router = express.Router(); 2. 이 파일을 모듈로서 사용하기 위해 exports해주기 파일의 맨 마지막 줄에 이 코드를 작성해주어야 사용이 가능해진다. module.exports = router; 간단히 사용해보면 route들의 개수가 늘어나도 파일을 분리하여 쉽게 관리가 가능하다! +..
Node.js | Express Middleware사용하기 (body-parser) body-parser 말그대로 body를 parsing해주는 미들웨어. 들어온 데이터를 원하는 형태로 변환해준다고 생각하면 됨 body-parser 없이도 post로 보낸 값을 받아올 수 있지만, body-parser를 사용함으로써 더 간단한 코드를 작성할 수 있게된다. install한 body-parser를 장착 var bodyParser = require('body-parser') 그리고 app.use(bodyParser.urlencoded({ extended: false })) 위의 코드 한 줄이면 request.body에 접근해 데이터를 가져올 수 있게 됩니다. 간단히 사용해보았음 이게 POST 방식일 때만 해당되는 것 인가..? 아마 GET 방식의 값을 받을 땐 req.query를 사용하면 될 ..
Node.js | PM2 사용하기 PM2 공식 홈페이지 PM2 - Home Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance. pm2.keymetrics.io PM2 알아보기 PM2를 활용한 Node.js 무중단 서비스하기 - LINE ENGINEERING 자바스크립트는 가장 널리 사용되는 클라이언트 측 프로그래밍 언어이자 프론트엔드 웹 개발 언어 중 하나입니다. 그리고 Node.js는 Chrome의 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임(runtime)으로 'Event Driven', 'Non-Blocking I/..