본문 바로가기

Node.js5

[AWS] EC2 Node.js, Mysql 설치 및 세팅 방법 # AWS EC2 에서 Node.js 와 MySQL 을 설치, 세팅하는 방법 EC2(Elastic Compute Cloud)에서 1) 인스턴스(컴퓨터 1대)를 생성하고, 2) SSH 접속하여, 3) node.js 와 MySQL을 세팅하는 방법을 정리한다. 1. EC2 생성 - 리전 : 화면 우상단에서 리전을 "서울" 등으로 선택하고 시작 - 인스턴스 시작 : EC2 서비스 화면에서 "인스턴스 시작" - 이름 입력: 원하는 이름을 입력. - OS 이미지 선택 : 원하는 OS를 골라준다. (이 글은 리눅스 우분투 기준이다) - 방화벽(보안그룹) : ssh 22포트 체크 확인. (SSH 접속 용도) - 필요에 따라 http 80포트, https 443 포트를 추가해둔다. (웹서버 접속 용도) - 키페어: SS.. 2022. 7. 4.
[Node.js] Multer - fetch 파일 전송 에러: Error: Multipart: Boundary not found # Multipart: Boundary not found 에러 해결 방법 - 클라이언트: fetch 를 통해 multipart/form-data 로 파일 전송 - 서버: Node.js에서 Multer를 통해 파일 업로드 처리 이 때, 아래의 에러가 발생할 수 있다. [에러 코드] Error: Multipart: Boundary not found [문제 원인] 태그의 기본 submit 이벤트를 통해 multipart/form-data로 파일을 전송하면, 이미지 업로드 내부적으로 Content-Type에 boundary 값을 설정하여 보낸다. (network탭의 Request Header 항목을 통해 확인 가능) 그러나 아래와 같이, - event.preventDefault()로 기본 submit이벤트를 막.. 2022. 5. 14.
[Node.js] Multer 파일 업로드 관련 에러: MulterError: Unexpected field # Node.js - MulterError: Unexpected field 해결 방법 Node.js 에서 Multer 를 통해서 파일을 업로드 받을 때, 아래와 같은 에러가 발생할 수 있다. [에러 코드] MulterError: Unexpected field code: 'LIMIT_UNEXPECTED_FILE', storageErrors: [] [문제 원인] multer는 input 태그의 name이나, FormData 객체의 key값을 통해 업로드된 파일을 식별한다. 이 값을 multer의 single() 이나 fields() 의 인자로 넣어주지 않았기 때문에 발생하는 문제다. (다른 문제일 수도 있으나, 내 경우엔 그랬다. 즉, 단순 실수다) [해결 방법] Multer 미들웨어를 라우터에 설정 할 때.. 2022. 5. 14.
[Node.js] javascript로 python 연동 호출 오류: Module Not Found Error Node.js환경, Express 웹서버 환경 등에서 파이썬 스크립트 호출 시, 보통 child_process의 spawn을 사용한다. const spawn = require('child_process'); const result = spawn('python', ['파이썬파일.py']); result.stdout.on('data', function(pythonResult){ console.log(pythonResult.toString()); }); 위 코드는 node.js 환경에서 "python 파이썬파일.py" 명령어를 실행한다.,(자세한 내용은 아래 글 참고) [Node.js] 자바스크립트로 파이썬 연동 실행 방법(함수 매개변수 전달 호출 : child-process) 근데 경우에 따라 아래와 같은 .. 2021. 1. 29.
node.js 서버배포 후, https 리소스 요청으로 화면 깨지는 문제 해결 방법(helmet 모듈) # 문제 현상 node.js 웹서버를 배포, 기동 후 접속했는데, CSS, JS, 이미지 리소스 로드에 실패하여 화면이 깨지는 현상이 발생할 때가 있다. (자바스크립트를 로드하지 못해서 웹페이지 자체가 작동을 안 하기도 한다) 브라우저 개발자도구의 network탭을 보면, CSS, JS, 이미지 등을 모두 HTTPS로 요청하면서 리소스를 불러오지 못해 에러가 발생하는 케이스일 가능성이 있다. 이 경우, node.js의 미들웨어에 helmet 모듈을 장착한건 아닌지 확인해보자. app.use(helmet()); helmet 모듈은 웹 취약성으로 부터 웹서버를 보호하는 역할을 하는데, 내부적으로 다음의 코드를 실행한다. app.use(helmet.contentSecurityPolicy()); app.use(.. 2021. 1. 25.