본문 바로가기

분류 전체보기

(686)
7. 익스프레스 (1) - 미들웨어 [10] : multer 2 앞서서 살펴본 multer 미들웨어 사용에 대한 내용을 이어서 살펴보겠습니다. const multer = require('multer');const upload = multer({ storage: multer.diskStorage({ destination(req, file, done) { done(null, 'uploads/'); }, filename(req, file, done) { const ext = path.extname(file.originalname); done(null, path.basename(file.originalname, ext) + Date.now() + ext); },..
7. 익스프레스 (1) - 미들웨어 [10] : multer 1 multer는 다소 사용법이 어렵지만, 이미지나 영상 등의 파일을 업로드하는 미들웨어로 활용도가 매우 높습니다. multer는 "멀티파트" 형식으로 여러가지 포맷의 파일을 업로드할 때 사용하는 미들웨어입니다.  여기서 멀티파트 형식은, 아래 html과 같이 enctype이 multipart/form-data인 폼을 통해 업로드하는 데이터의 형식을 의미합니다.  업로드   이러한 폼을 통해 업로드하게 되는 파일은, body-parser로는 처리가 어렵고 직접 파싱하기도 어렵습니다. 이런 경우에 multer를 사용하게 됩니다.  우선 해당 파일이 있는 폴더에서 multer 패키지를 설치해보겠습니다.  $ npm i multer     파일이 아닌 예제 코드를 살펴보면서 하나씩 설명해 보겠..
7. 익스프레스 (1) - 미들웨어 [9] : 미들웨어의 특성 정리 2 앞선 아티클에서 전반적인 미들웨어의 특성에 대해 정리했습니다. 이어서 계속 살펴보겠습니다.    7. 익스프레스 (1) - 미들웨어 [9] : 미들웨어의 특성 정리 1- 미들웨어는 req, res, next를 파라미터로 갖는 함수로서 app.use / app.get / app.post 등으로 장착합니다. - 에러 처리 미들웨어는 예외적으로 err, req, res, next를 파라미터로 가지게 됩니다. app.use((req, res,nozeroslope.tistory.com  - 미들웨어 간에 데이터를 전달하는 방식에는 세션을 사용하는 방법이 있습니다. req.session 객체에 데이터를 넣는 방식이죠. 단, 이는 세션이 유지되면 데이터도 무조건 계속 유지된다는 단점이 있습니다.  - 요청이 끝날 때..
7. 익스프레스 (1) - 미들웨어 [9] : 미들웨어의 특성 정리 1 - 미들웨어는 req, res, next를 파라미터로 갖는 함수로서 app.use / app.get / app.post 등으로 장착합니다. - 에러 처리 미들웨어는 예외적으로 err, req, res, next를 파라미터로 가지게 됩니다. app.use((req, res, next) => { console.log('모든 요청에 실행됨'); next();});  - 특정한 주소의 요청에만 미들웨어가 실행되게 하려면, 첫 번째 인수로 주소를 넣으면 됩니다. app.get('/', (req, res, next) => { console.log('GET / 요청에서만 실행됨'); next();}, (req, res) => { throw new Error('에러는 에러 처리용 미들웨어로 ..
7. 익스프레스 (1) - 미들웨어 [8] : express-session 2 [app.js] const express =require('express');const morgan = require('morgan');const cookieParser = require('cookie-parser');const session = require('express-session');const dotenv = require('dotenv');const path = require('path');dotenv.config();const app = express();app.set('port', process.env.PORT || 3000);app.use(morgan('dev'));app.use('/', express.static(path.join(__dirname, 'public')));app.use..
7. 익스프레스 (1) - 미들웨어 [7] : express-session 1 express-session은 세션 관리를 하는 미들웨어 입니다. 로그인 등의 이유로 세션을 구현하거나, 특정 사용자 데이터를 임시로 저장할 때 사용하죠. 세션은 사용자별로 req.session 객체에 유지됩니다.   [app.js] const express =require('express');const morgan = require('morgan');const cookieParser = require('cookie-parser');const session = require('express-session');const dotenv = require('dotenv');const path = require('path');dotenv.config();const app = express();app.set('po..
7. 익스프레스 (1) - 미들웨어 [6] : cookie-parser cookie-parser는 req에 포함된 쿠키를 해석하고, req.cookies 객체로 만들어주는 역할을 합니다. 이는 parseCookies 함수와 기능이 비슷하죠.   5. http 모듈로 서버 만들기 (3) - 쿠키와 세션의 이해 [4]앞선 아티클에서 쿠키를 통한 유저 식별 사례 예제 코드를 작성했습니다. 이어서 계속 설명해 보겠습니다.  [cookie2.html] LOGIN    [cookie2.js]const http = require('http');const fs = require('fs').promises;const patnozeroslope.tistory.com 예제와 함께 이어서 살펴보겠습니다.  [app.js] const express =require('express');const m..
7. 익스프레스 (1) - 미들웨어 [5] : body-parser 이번 아티클에서는 미들웨어 body-parser에 대해서 살펴봅니다. 이는 req의 본문에 있는 데이터를 해석해서 req.body로 만들어 주는 미들웨어죠. 폼 데이터, AJAX 요청의 데이터를 처리합니다. 참고로 멀티파트(이미지, 동영상, 파일) 데이터는 처리가 불가능해서 향후 살펴볼 multer 모듈을 사용하게 됩니다.   [app.js] const express =require('express');const morgan = require('morgan');const cookieParser = require('cookie-parser');const session = require('express-session');const dotenv = require('dotenv');const path = req..