Node.JS21 [MacOS] Homebrew로 node 버전 변경하기 1. Homebrew 설치하기 https://brew.sh/ HomebrewThe Missing Package Manager for macOS (or Linux).brew.sh 홈페이지 접속 후 스크립트 복사하여 터미널에서 실행설치가 완료되면 아래 스크립트로 버전을 확인할 수 있다.brew --version 2. NVM 설치하기brew install nvm 3. NVM 설정하기vi ~/.zshrc zshrc 파일에 아래 내용 추가export NVM_DIR=~/.nvmsource $(brew --prefix nvm)/nvm.sh 터미널에 스크립트 입력source ~/.zshrc NVM 버전 확인nvm --version 4. NVM 명령어nvm ls // 설치된 Node 확인nvm ls-remote // .. Node.JS 2025. 1. 22. PrismaClientInitializationError: Can't reach database server at `localhost`:`5432` 개인적으로 프로젝트를 진행하던 중도커로 띄워져있는 PG에 prisma가 연결되지 않는 문제가 갑자기 발생했다며칠 전만 해도 정상적으로 동작하던 게 갑자기?? 해당 문제를 확인하고,DBever을 켜서 확인해 보니 정상적으로 연결이 되어있다.마이그레이션은 정상적으로 동작하는지 확인해 봤다. 문제를 해결하기 위해 구글링을 해보니 port를 바꿔라, CONNECTION TIME OUT 시간을 늘려라 등이 있었고 전부 시도해 봤다.해결하지 못했다.나는 어떤 문제일까 고민하다가.env의 DB_URL 값을 변경해 보았다 아주 잘된다 ...?? 그저 localhost -> 127.0.0.1로 변경 ㅠㅠDATABASE_URL="postgresql://user:password@127.0.0.1:5432/tableName?.. Node.JS 2024. 6. 5. [NEST] NestJS Excel Parser 엑셀파일 원하는 형태로 만들기 오늘은 회사에서 다른 회사와 협업하던 중 엑셀파일을 받았고 해당 파일을 보고 데이터를 매핑해서 사용해야하는 일을 하게됐다. 엑셀을 보며 일일히 매핑을하다가 너무 양이 많기에 어떻게하면 쉽게 처리할 수 있을까 고민하다가 xlsx를 이용하여 excel파일을 읽어서 원하는 형태로 매핑하면 되지 않을까? 라는 생각에 사용해보고 혹시 나중에도 유용하게 사용하지 않을까라는 생각이 들어 블로그에 글을 남긴다. 1. xlsx 라이브러리 설치 npm install xlsx 우선 위의 명령어를 통해 xlsx 라이브러리를 설치하자 설치가 완료되었으면 아래와 같이 controller, service 등 사용할 곳에서 xlsx 라이브러리를 improt 해줘야한다 import { Controller, Get, Post, Uplo.. Node.JS 2023. 7. 24. [Nest] Slack Webhook https://api.slack.com/messaging/webhooks Sending messages using Incoming Webhooks Creating an Incoming Webhook gives you a unique URL to which you send a JSON payload with the message text and some options. api.slack.com 1. Nest에서 Slack으로 알림 보내기 앱을 생성했다면 이제 webhook수신 설정을 해준다 수신 설정을 해주면 아래와 같은 url을 받을 수 있다 https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX 이제 코드로 가보자 우선.. Node.JS 2023. 6. 5. NodeJS Crypto 모듈을 활용한 데이터 보안 강화 오늘은 Node.js에서 제공하는 crypto 모듈을 사용하여 데이터 보안을 강화하는 방법에 대해 알아보겠습니다. crypto 모듈은 암호화, 해시, 서명 등 다양한 보안 기능을 제공하여 애플리케이션의 데이터를 안전하게 처리할 수 있도록 도와줍니다. 1. Crypto 모듈 소개 crypto 모듈은 NodeJS의 기본 모듈 중 하나로, 다양한 암호화와 해시 함수를 포함하고 있습니다. 주로 데이터를 안전하게 처리하기 위해 사용됩니다. 주요 기능으로는 데이터 암호화/복호화, 해시 생성, HMAC(Hash-based Message Authentication Code)생성, 서명 및 검증 등이 있습니다. 2. 데이터 암호화와 복호화 데이터를 암호화하고 복호화하는 예제 대칭키 암호화 방식중 하나인 AES를 사용하여.. Node.JS 2023. 5. 25. @nestjs/config 사용법 @nestjs/config 사용법 모듈 설치 npm i @nestjs/config .env DATABASE_HOST="127.0.0.1" DATABASE_PORT=3306 DATABASE_USERNAME="root" DATABASE_PASSWORD="root" DATABASE_DATABASE="love_diary" typeorm.config.ts import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config/dist'; import { TypeOrmOptionsFactory, TypeOrmModuleOptions } from '@nestjs/typeorm'; import { Users } from 'src.. Node.JS 2023. 2. 16. TypeORM queryRunner를 이용한 트랜잭션 제어 queryRunner를 이용한 트랜잭션 제어 queryRunner는 single database connection을 제공하기 때문에 트랜잭션 제어가 가능하다. 좀더 세부적으로 직접 트랜잭션을 제어하고 싶을 때에는 QueryRunner를 사용하면 된다. // queryRunner 생성!! const queryRunner = dataSource.createQueryRunner() // 새로운 queryRunner를 연결한다. await queryRunner.connect() // 생성한 쿼리러너를 통해 쿼리문을 날리는 것도 가능하다. await queryRunner.query("SELECT * FROM users") // 새로운 트랜잭션을 시작한다는 의미의 코드이다. await queryRunner.sta.. Node.JS 2023. 2. 15. NestJS TypeORM을 사용해보자 TypeORM이란 무엇인가? TypeORM은 node.js에서 실행되고 TypeScript에서 작성된 객체 관계형 매퍼 라이브러리 입니다. TypeORM은 MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle 등을 지원합니다. ORM (Object Relational Mapping) 이란? 객체와 관계형 데이터 베이스의 데이터를 자동으로 변형 및 연결하는 작업입니다. ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용할 수 있습니다. TypeORM 설치 npm i typeorm @nestjs/typeorm npm i mysql2 // 사용하고 싶은 데이터베이스 설치 TypeORM 연결하기 typeORM 설정파일 생성 본인은 src/confi.. Node.JS 2023. 2. 14. NestJS Pipes 이용하기 Pipes 란 무엇일까? 파이프는 @Injectable() 데코레이터로 주석이 달린 클래스입니다. 파이프는 data transformation과 data validation을 위해서 사용됩니다. data transformation ?? 입력 데이터를 원하는 형식으로 변환 (string → number) (ex: "1" → 1) 숫자를 받아야 하는데 문자열로 온다면 파이프를 통해 자동으로 숫자로 바꿀 수 있습니다. data validation ?? 데이터가 올바르지 않을 때 에러를 발생시킵니다. Pipe의 사용 파이프는 3가지의 사용법이 있습니다. Handler-level Pipes Parameter-level Pipes Global-level Pipes Handler Pipes 이 파이프는 모든 파라미터.. Node.JS 2023. 2. 10. Nest.js를 시작해보자 Nest.js를 시작해보자 npm i -g @nestjs/cil nest new project -name 명령어 module 생성하기 nest g module 이름 Controller 생성하기 nest g controller 이름 --no-spec nest g co 이름 --no-spec --no-spec : 테스트를 위한 소스 코드를 생성하지 않겠다 co : controller 약자 약자는 터미널에 nest를 입력해서 명령어 및 약자 확인이 가능하다. Service 생성하기 nest g service 모듈이름 --no-spec Node.JS 2023. 2. 9. Socket.io 송수신 메소드 Socket IO 이벤트 통신 소켓IO 의 메소드의 특징은 클라이언트에서 발생하는 이벤트는 개발자가 임의로 설정할 수 있다는 점이다. 이벤트는 문자열로 지정하며 직접 이벤트를 발생시킬 수 있다. 전반적으로 노드 이벤트 핸들러 방식을 따르고 있다고 보면 된다. // 해당 이벤트를 받고 콜백함수를 실행 socket.on('받을 이벤트 명', (msg) => { }) // 이벤트 명을 지정하고 메세지를 보낸다. socket.emit('전송할 이벤트 명', msg) 이런식으로 메세지 마다 고유한 이벤트를 등록해 구별해서 송수신하면, 채팅방에서 '귓속말' 기능처럼 특정 어느 사람한테만 메세지를 송신한다던지 ..등 다양한 통신 기능을 구현할 수 있다. Socket IO 송수신 메소드 소켓 메세지 수신 // 접속된 .. Node.JS 2023. 1. 12. Express Cookie-Parser Cookie-parser란? 요청된 쿠키를 쉽게 추출할 수 있도록 도와주는 미들웨어 입니다. express의 request(req) 객체에 cookies 속성이 부여됩니다. node의 npm 패키지에 포함되어 npm install cookie-parser --save를 통해 install하여 사용할 수 있습니다. 예제 코드) var express = require('express'); var cookieParser = require('cookie-parser'); var app = express(); app.use(cookieParser()); app.get('/', function(req, res) { console.log('Cookies: ', req.cookies) }) app.listen(8080.. Node.JS 2023. 1. 6. 이전 1 2 다음 반응형