Express(7)
-
에러처리 미들웨어 [ express ] [ node.js ]
다른 미들웨어 함수와 동일한 방법으로 오류 처리 미들웨어 함수를 정의할 수 있지만, 오류 처리 함수는 3개가 아닌 4개의 인수, 즉 (err. req. res, next) 를 갖는다는 점이 다르다. 오류 처리 미들웨어는 다른 app.use() 및 라우트 호출을 정의한 후에 마지막으로 정의해야 하며, 예를 들면 다음과 같다. // app.js // ... // 에러 핸들링 미들웨어 정의 app.use((err, req, res, next) => { const status = err.statusCode || 500; const errorMessage = err.message || "서버 에러"; res.status(status).json({ errorMessage, }); }); // ... 미들웨어 함수 ..
2023.07.22 -
AWS multer-s3 오류 TypeError: this.client.send is not a function
TypeError: this.client.send is not a function 이 에러는 AWS S3 에 접근할 수 없다는 에러였다. aws 에 퍼플릭 엑세스로 설정을 바꾼뒤 해결되었다. 이후 다른 문제가 발생했는데, req.file 을 불렀을때 값이 비어있었고, 당연히 req.file.location 도 작동하지 않았다. 아래는 해당 코드이다. // awsMulterModules.js const multer = require("multer"); const AWS = require("aws-sdk"); const multerS3 = require("multer-s3"); const path = require("path"); require("dotenv").config(); AWS.config.upda..
2023.07.21 -
multer
inpa Dev 님의 블로그를 참고하여 적은 글입니다. multer 란? 이미지나 동영상 등을 비롯한 여러가지 파일들을 멀티파트 형식으로 업로드 할 때 사용하는 미들웨어 이다. 멀트파트 형식이란 enctype 이 multipart/form-data 인 폼을 통해 업로드하는 데이터의 형식을 의미한다. multer 문법 storage 는 저장할 공간에 대한 정보, 디스크나 메모리 저장 기능 diskStorage 는 하드디스크에 업로드 파일을 저장한다는 것 destination 은 저장할 경로 filename 은 저장할 파일명(파일명 + 날짜 + 확장자 형식) limits 는 파일 개수나 파일 사이즈를 제한할 수 있다. const multer = require('multer'); const fs = requi..
2023.07.20 -
GitHub Action
Github Action 이란? Github Actions 를 사용하여 리포지토리에서 바로 소프트웨어 개발 워크플로를 자동화, 사용자 지정 및 실행합니다. CI/CD 를 포함하여 원하는 작업을 수행하기 위한 작업을 검색, 생성 및 공유하고 완전히 사용자 정의된 워크플로에서 작업을 결합 할 수 있다. Github 에서 공식적으로 제공하는 CI/CD 툴이다. 즉, 개발의 워크플로를 자동화 할 수 있게 도와주는 도구이다. Github Actions 를 사용하면 자동으로 코드 저장소에서 어떤 이벤트가 발생했을 때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행 시킬 수도 있다. 어떤 새로운 코드가 메인 브랜치에 유입(push)되면 Github Actions 를 통해 소프트웨어를 빌드하고 상용..
2023.07.16 -
JWT 토큰 [ node.js ] [ express ]
JWT 토큰이란? Json 포멧을 이용해 사용자에 대한 속성을 저장하는 웹 토큰이다. JWT 는 토큰 자체를 정보로 사용한다. 주로 회원 인증이나 정보 전달에 사용된다. JWT 구조 JWT 는 Header, Payload, Signature 의 세가지 부분으로 이루어 지고, Json 형태인 각 부분은 Base64Url 로 인코딩 되어 표현된다. 또 각 부분을 이어주기 위해서 . 구분자를 사용하여 구분한다. * Base64Url 은 암호화된 문자열이 아니고 같은 문자열에 대해 항상 같은 인코딩 문자열을 반환한다. 1. Header(헤더) 토큰의 헤더는 typ 과 alg 두 가지 정보로 구성된다. { "alg": "HS256", "typ": JWT } typ : 토큰의 타입을 지정 ex) JWT alg : ..
2023.07.16 -
미들웨어 [ TIL ] [ express ]
Problem express 의 미들웨어를 알아보자 Solve 요청과 응답의 중간에 위치하기 때문에 미들웨어 라고 부른다. 보통은 요청과 응답을 조작해 기능을 추가하거나 나쁜 요청을 걸러낸다. 각각의 미들웨어는 next() 메소드를 호출해 그 다음 미들웨어가 작업을 처리 할 수 있도록 순서를 넘긴다. 미들웨어는 req, res, next 가 매개변수인 함수이고, 미들웨어 함수를 여러번 인자로 쓸 수 있다. const express = require('express') const app = express() app.use((req, res, next) => { console.log('응애 나 미들웨어'); next() }); app.get('/', (req, res) => { res.send('하이염'..
2023.07.16