본문 바로가기
728x90
반응형

All Side/Runtime > NodeJS21

[NodeJS] code ERESOLVE ERESOLVE could not resolve 해결 클라이언트 Dockerfil을 작성 중 code ERESOLVE ERESOLVE could not resolve 라는 오류를 만나게 되었다. 오류의 원인은 npm v7에서는 npm install 충돌이 발생하면 실패한다고 한다. npm v4~6에서는 충돌이 있어도 경고만 뜨고 설치는 되었다고 한다. RUN npm install --save --legacy-peer-deps 발견한 해결 방법은 --save --legacy-peer-deps 였다. 해본 결과 Build도 잘 되었고 작동도 문제 없이 되었다. 좀 더 찾아보니 --legacy와 --force 둘 중 하나를 사용하여 해결하는 것 같았다. --legacy는 충돌을 무시하고 peerDependency가 맞지 않아도 일단 설치한다고 한다. --forc.. 2022. 8. 30.
[NodeJS] 테스트 코드 작성하기 (1) 알아버린 참맛 + 필요성 테스트 코드란 테스트 코드란 통상적으로 서비스의 품질을 확인하거나 소프트웨어의 버그를 찾을 때 작성하는 코드이다. 쉽게 말해서 내가 짠 코드가 잘 동작하는지 확인하는 도구이다. 또한 개발자라면 한 번씩 TDD에 대해서 들어보았을 것이다. Test-Driven Development 즉, 테스트 주도 개발이라고 불리면서 많은 개발자들이 해야하는 덕목처럼 주장하는 사람들이 많다. 채용공고나 면접에서 테스트 코드를 잘 짜는지에 대해서 물어보기도 한다. 부정적인 생각 많은 개발자들이 테스크 코드를 중요하게 생각하는데 솔직히 지금까지 필요성을 못느끼고 있었다. 오류 사항을 파악할 수 있다고 하는데 console.log를 찍든 errer 메시지를 보면 바로바로 수정이 가능하다. 오히려 테스크 코드를 먼저 짠다고 생각.. 2022. 8. 24.
[NodeJS] 검색기능 만들기 (1) MongoDB Query 규모가 크지 않은 서비스라면 굳이 검색엔진을 구축할 필요는 없습니다. MongoDB Query를 가지고 간단한 검색기능을 알아보도록 하겠습니다. 1) Regex 아마 가장 많이 사용하는 방법이 정규식이라고 생각합니다. 정규식을 이용하면 쿼리 중에 문자열의 패턴을 검색 가능합니다. 정규식은 패턴을 일련의 문자와 일치시키는 일반화된 방법입니다. .find({ title: { $regex: "강아지" } }) 원하는 필드에 찾고자 하는 데이터를 $regex로 걸어줍니다. 그러면 title이라는 필드 안에 "강아지"라는 단어를 가진 데이터들을 모두 가지고 옵니다. 예를 들어, title이라는 데이터에 "강아지" 말고도 "강아지산책", "사료강아지" 등 강아지가 포함된 모든 데이터들이 검색됩니다. 부분 텍스트 검.. 2022. 8. 19.
[ErrorFix] Axios multer로 파일 전송시 req.files에 나오지 않는 오류 해결 Axios로 파일을 보낼때 파일이 req.files에 나오지 않는 현상이 나왔다. 원래라면 이렇게 req.files를 할 때 나와야하는데 아예 빈 값이 나와 당황스러웠다. const formData = new FormData(); formData.append("script", data); axios.post(`http://${process.env.LOGICKIT_URL}/module/add`, formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .catch((error) => { console.log(`fail 😱`, error.message) }) 작성한 코드를 한번 살펴보면 이상한 점이 하나도 보이지 않는다. 원인을 찾기 위해 여러가지.. 2022. 8. 11.
[npm] NodeJS에서 환경변수 사용하기 - dotenv 새로운 Repo에서 환경변수를 쓸 일이 있어서 process.env.URL 이라고 작성했는데 undefined가 떴다. 원인은 node 명령어로 실행시키는 파일에서는 .env파일을 인식할 수 없다고 한다 ❗️ 그래서 별도의 모듈인 dotenv를 설치하여 인식할 수 있게 해준다. npm install dotenv --save 사용법은 우선 dotenv 모듈을 설치한다. require("dotenv").config(); 환경변수를 사용할 파일에서 환경 변수를 불러오는 코드를 작성해준다. console.log("URL:", process.env.URL); 그 다음 원래대로 process.env로 원하는 환경변수를 호출해주면 됩니다. 2022. 8. 10.
npm 명령어 모음 npm 설치 npm i npm dev 설치 npm i --sava-dev npm 삭제 npm uninstall 2022. 5. 30.
[NodeJS] API 문서 툴 Swagger 사용해서 API 문서 자동화 (+ swagger-autogen) 회사를 다니면서 프론트와 백엔드가 협업하기 위해서 가장 필요한 요소가 API 문서라는 것을 알았습니다. 클라이언트-서버 간의 통신을 정리하는 것이 API 문서입니다. 근데 이걸 아주 조금이라도 잘못 쓰거나 누락시키면 큰일이 됩니다. 그렇기 때문에 API 문서를 작성해주는 툴들이 존재하고 그중에서 가장 유명한 Swagger입니다. Swagger를 찾아보니 일일이 주석을 작성해야해서 굳이 이걸 써야 하는가에 대해 고민했습니다. 귀찮은 것을 싫어하는 개발자답게 좀 더 찾아보니 swagger를 자동 생성해주는 라이브러리가 있더라고요! swagger-autogen을 이용해서 한 번 API 문서를 자동으로 만들어보도록 하죠. 1. 서버(nodemon 포함)를 멈추고 라이브러리 설치 - 매우 중요 ⭐️⭐️⭐️⭐️⭐️.. 2022. 5. 26.
[NodeJS] VM (Virtual Machine) - 가상머신 모듈 VM이란? 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경이다. 즉, VM를 이용하여 OS 운영체제에서 윈도우나 리눅스를 돌릴 수 있다는 것이다. 하지만 무거운 운영체제를 포함하고 있기 때문에 경량화 한 것이 컨테이너이다. NodeJS는 원래 V8엔진을 사용한다. NodeJS내에서 엔진을 쉽게 액세스 할 수 있는데 그 방법이 VM모듈에서 제공한다. const express = require("express") const vm = require("vm") const context = { express: express, } vm.createContext(context) const code = ` const app =.. 2022. 2. 28.
[Node.js] 기본세팅 + 시작코드 프로젝트 새로 시작할 때마다 찾기 귀찮아서, 내가 볼려고 만든 초반에 해줘야할 기본세팅과 시작코드이다. npm i express mongoose jsonwebtoken -S npm init -y 프로젝트에 필요한 모듈을 터미널에서 설치한다. jsonwebtoken은 JWT 사용할 경우 설치해주기... // app.js const express = require("express"); const bodyParser = require("body-parser"); const mongoose = require("mongoose"); mongoose.connect("mongodb://localhost/{DB이름써주기}", { useNewUrlParser: true, useUnifiedTopology: true, }.. 2022. 2. 12.
728x90
반응형