nodejs 7

[Nestjs] multer로 이미지 파일 업로드하기

multer란 ?  - Node.js 환경에서 파일 업로드를 처리하는 미들웨어로 파일을 서버에 업로드할 때 유용하게 사용됨.  1. 설치 npm install multer @types/multer2. 서버 설정2-1. multer 설정 multer 미들웨어는 파일 저장 위치를 설정할 수 있게 해줌.  두가지 저장방식이 있음 1) 디스크 저장  2) 메모리 저장 나는 디스크에 바로 저장을 할 예정이라서 distStorage 옵션을 사용.  multer 설정옵션에 대한 클래스를 작성할 수 있다. /src/util/multer.config.tsimport { Injectable } from '@nestjs/common';import * as multer from 'multer';import { MulterOp..

framwork/NestJs 2024.11.19

[ubuntu] ubuntu 22.04.lts에 원하는 노드버전 설치하기 (feat: nvm)

nvm이란 ?  nvm(Node Version Manager)은 노드버전 관리자임.  nvm을 사용하면 하나의 시스템에서 여러 버전의 nodejs를 설치하고 쉽게 전환 가능함.  nodejs의 다양한 버전을 관리 가능함.  ubuntu 20.04.lts 버전에서 nvm을 설치하고,  nvm을 사용하여 원하는 버전의 노드를 설치하려고 함.  1. nvm 설치curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash 2. nvm 활성화export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/..

기타/Linux 2024.08.17

[node.js] mariaDB 연결 시 unknown plugin auth_gssapi_client 에러

[node.js] mariaDB 연결 시 unknown plugin auth_gssapi_client 에러 컴퓨터를 새로 바꾸면서 nodejs와 mariadb 모두 새로 설치했다. 그리고 바로 뱉은 에러 ^^.. Error: Server requests authentication using unknown plugin auth_gssapi_client. See TODO: add plugins doco here on how to configure or author authentication plugins. ALTER USER 'root'@'{host}' IDENTIFIED VIA mysql_native_password USING PASSWORD('{비밀번호}');이 명령문을 실행하였더니 에러가 사라졌다 !..

기타/문제해결 2024.07.23

[nodeJS] fs.unlink 파일 삭제 시도 중 operation not permitted, unlink 에러발생

[nodeJS] fs.unlink 파일 삭제 시도 중 operation not permitted, unlink 에러발생 fs모듈 fs는 FileSystem의 약자로, fs모듈은 NodeJS에서 파일 입출력 처리를 할 때 사용한다.  fs.unlink와 fs.unlinksync로 파일을 삭제할 수 있는데,  unlink는 비동기 unlinksync는 동기적으로 파일을 삭제한다.  내가 하고자 했던 작업은..  이렇게 앱서버가 있고,  서버 루트폴더에 public/images 에 resized된 이미지가 있고 로컬 파일시스템에 user/images 에 원본 이미지가 있음. 그리고 삭제 api를 호출하면  양쪽 경로에 있는 이미지를 삭제하는 거였는데... fs.unlink(filePath)로 삭제를 하면 계속..

기타/문제해결 2024.07.19

[NodeJS] Nodejs란?

Nodejs는 Chrome V8 Javascript엔진으로 빌드된 Javascript 런타임이다!   Nodejs는 단일 스레드, 단일 프로세스 아키텍처를 사용하며, 이를 통해 비동기식 I/O작업을 효율적으로 처리할 수 있음.   1. 하나의 프로세스  Nodejs는 하나의 프로세스에서 실행됨.  이는 애플리케이션이 단일 프로세스에서 실행된다는 의미. 일반적인 웹 서버 환경에서는 여러 프로세스나 스레드를 사용해 동시 요청을 처리하는 반면, Nodejs는 단일프로세스로도 많은 동시 요청을 처리할 수 있음.   2. 하나의 스레드 Nodejs는 단일 스레드를 사용함.  일반적으로 다중 스레드를 사용하는 환경에서는 동시성문제 (예: 데드락)가 발생할 수 있는데  Nodejs는 이러한 문제를 피하기 위해 단일 ..

framwork/nodejs 2024.07.10

[Nodejs / PM2] PM2(Process Manager) 사용법

PM2를 사용해서 노드 서버를 실행시켜보자 !  *PM2 공식홈페이지  https://pm2.keymetrics.io/*PM2란? -> Node.js 프로세스 관리자  node는 싱글 스레드 기반이지만, 멀티 코어 멀티 스레딩을 사용할 수 있게 해준다 !  클라이언트로 부터 요청이 오면 알아서 여러 노드 프로세스에 고르게 분배하는 로드밸런싱 역할을 한다. 1. pm2 모듈을 global로 설치한다. npm install pm2 -g2. ecosystem.config.js 파일을 생성한다pm2 ecosystem=> 해당 파일을 생성하는 이유는 일반적으로 사용하는 env.dev 이런 파일을 pm2가 읽지 못한다고 한다  그래서 pm2가 읽을 수 있는 환경설정 파일을 생성하는 것. pm2 ecosystem을..

framwork/nodejs 2024.03.15

[Nodejs / PM2] window에서 pm2로 node서버 실행 시 cmd창 깜빡거림 현상

window에서 pm2를 이용해서 node 서버를 클러스터 모드로 실행했을때  cmd 팝업창이 자꾸만 뜬다. 내가 실행하는 인스턴스의 갯수만큼 cmd창이 번쩍번쩍 거림..^^..  구글링해보니,,  원인은 아마도 nodejs가 새 프로세스 마다 셸을 생성하기때문에 창이 계속 뜨는거라고 한다..pm2에서 발생하는것이 아니라  노드 자체의 하위 프로세스를 생성하는 과정에서 발생하기 때문에  {detached: true}라는 구성을 추가하면 팝업이 생성되지 않는다고 한다.  문제는 클러스터 모드에서는 프로세스가 생성되는 방식을 제어하지 못하기 때문에 이 옵션을 추가하는 것이 불가능함..그래서 누군가가 추천한 방법.. npm i -g pm2@4.4pm2 update를 실행해보라고 했고 해결이 되었다.  (이걸로..

기타/문제해결 2024.03.14