반응형
반응형
aws Node.js 포스트를 쓰기 위해 테스트 진행 중 만난 에러. aws-sdk와 s3 버전이 맞지 않으면 발생한다. npm install multer-s3@^2 --save 로 버전을 맞추면 해결된다.
express에는 Router가 기본으로 포함되어 있다. 따라서 Express를 사용한다면 곧장 라우터를 사용할 수 있다. 메인이 되는 서버 파일, index.js에서 express를 import 해 준다. 리액트에서 요청하게 할 것이므로 cors를 설치해 주었다. //index.js const express = require('express') const app = express() app.use(express.json()); var cors = require('cors'); app.use(cors()); app.listen(5000,function(){ console.log('서버를 열었습니다.') }) 루트 폴더에 routes폴더를 만들고, 라우터로 사용할 js파일을 만든다. 프론트에서 route ..
Node.js에서는 프로젝트 디렉토리에 .env라는 파일이 존재하면, 환경변수처럼 소스코드로 가져와서 사용할 수 있다. .env 파일은 Object처럼 key=value 형식으로 작성하며, 주석을 작성하고자 할 때는 문장의 맨 앞에 #을 붙인다. # 주석을 사용할 때는 #을 붙인다. # 저장할 값이 문자열이라고 해도 따옴표는 사용하지 않는다. key=값 .env 파일을 이용하려면 dotenv 패키지를 설치해야 한다. npm install dotenv .env 파일을 dotenv 패키지로 불러올 수 있다. require('dotenv').config(); .env 파일은 [프로젝트의 루트] 폴더에 생성한다. 테스트용으로 TEST_DATA = test 라는 문장을 .env 파일에 작성한다. .env 파일에 ..
처음 웹개발을 배우는 사람들은, 파일 저장을 배울 때 이렇게 배웠을 것이다. '백엔드에 formData를 전달해, 로컬 서버(내 컴퓨터)에 파일을 저장한다' 고 ...(나도 그랬음) 하지만 S3는 내 컴퓨터가 아닌 외부 서버이다. 즉, 남의 컴퓨터에 파일을 저장한다는 뜻이다. 따라서 굳이 백엔드로 전달해 어쩌구 라이브러리를 써서 설정한 다음 내 컴퓨터(로컬)에 저장하고 뭐시기.... 라는 긴 과정을 거칠 필요가 없다. aws의 aws-sdk 라는 라이브러리를 설치해 사용 방법 대로만 해주면, 프론트엔드에서 바로 S3로 파일을 전송해 저장할 수 있다. S3의 버킷은 우리에게 URL 형태의 파일을 제공해주므로 그를 돌려받아 페이지에 바로 뿌릴 수도 있다. 물론 multer와 aws-sdk, multer-3s..