본문 바로가기
728x90
반응형

All Side/Runtime > NodeJS21

[NodeJS] gts로 간편하게 TypeScript 프로젝트 생성하기 - 라이브러리 추천 가장 귀찮은 일은? 프로젝트 생성하기! 프로젝트를 하나 생성할 때마다 귀찮지 않은가? 개발자한테 귀찮음이란 해결해야하는 숙제와 같다. 역시 나처럼 생각하는 사람들이 많았는지 좋은 라이브러리가 있어 가지고 왔다. GTS란 구글에서 만든 TypeScript 가이드이다. npx gts init 단 한줄의 명령어로 TypeScript 프로젝트를 생성해준다. 사용법 // 폴더 생성 mkdir [name] // 생성한 폴더로 이동 cd [name] // gts 실행 npx gts init --yarn 사용할 때 아무 폴더에나 명령어를 입력하지 말고 먼저 폴더 생성한 후 gts 명령어를 입력해라. yarn을 사용할 경우 나처럼 명령어 뒤에 --yarn을 붙어주면 된다. package.json이 없다고 만들거냐고 물어.. 2023. 5. 2.
fs.rmdir error - ENOENT: no such file or directory, open 'x' 에러 if (files) { for (const file of files) { formData.append(file.fieldname, fs.createReadStream(file.path), { filename: file.originalname }); } formData.append('data', body); fs.rmdir('uploads/run', { recursive: true }, err => { if (err) { console.log('file 삭제 오류: ', err); } else { console.log('file 삭제 완료'); } }); } 솔직히 말해서 ENOENT: no such file or directory, open 'x'라는 에러문구는 심플하다. 경로에 적힌 대로 갔는데 .. 2023. 4. 5.
[express] middleware 결과 다음으로 넘겨주기 - next()에 parameters 넣어주기?! 중복코드 없애기 = middleware 사용하기 A, B, C API가 있다. 모두 동일하게 먼저 User라는 데이터가 있는지 확인한다고 하자. 그럼 A, B, C API를 담당하는 router에 User를 조회하는 프로세스가 사용될 것이다. 개발자란 동일한 코드를 최대한 사용하지 않는다가 나의 개발론이기 때문에 매우 거슬렀다. 그래서 사용한게 middleware다! middleware를 이용하면 다음 미들웨어로 현재 요청을 넘길 수 있다. 더 자세한 것은 공식문서에서보자. https://expressjs.com/en/guide/using-middleware.html Using Express middleware Using middleware Express is a routing and middleware.. 2023. 3. 8.
[YarnBerry] yarn으로 express 초기세팅 오류 해결 - Cannot find module 'x' or its corresponding type declarations.ts(2307) import로 모듈을 가져올 수 없다? 최근에 패키지 관리를 npm이 아닌 yarn berry로 하게 되었다. 아직 익숙하지 않는데 import부터 안될줄은 생각도 못했다 🤣 @types 때문인가? typescript는 쓰면 분명 npm i [모듈이름]으로 다운 받았는데도 안되는 경우가 있다. 그러면 vscode에서 친절하게 npm i @types/[모듈이름] 해줄까 라고 물어본다. @types로 한 번 더 모듈을 다운로드느 하는 이유는 JavaScript엔 필요 없는 타입추론을 TypeScript에서는 하기 때문이다. yarn add @types/express --dev 그래서 바로 yarn add 명령어를 이용해서 다운로드 해줬지만 여전히 오류가 사라지지 않았다. VSCode에 쓰려면 다음과 같은 절.. 2023. 3. 7.
인코딩 된 문자열 생성하기 btoa()는 NodeJS에서 사용 ❌ const encodedData = btoa('Hello, world'); // 문자열 인코딩 const decodedData = atob(encodedData); // 문자열 디코딩 문자열을 인코딩할 일이 있어 이거저거 알아보다가 JavaScript에서 제공해주는 btoa() 함수가 있다는 것을 알게 되었다. 바로 사용해주겠어 하고 NodeJS 로직에 작성해보니 아래와 같이 btoa이 이상하다. 마우스를 올려보니 The signature '(data: string): string' of 'btoa' is deprecated. 라는 메시지가 뜬다. 찾아보니 Node에선 더이상 btoa()와 atob()를 사용하지 않는다고 한다. 그러면 어떻게 해야할까? Buffer.. 2023. 2. 14.
백엔드에서 페이지네이션 하는 방법 2가지 MongoDB or JavaScript 페이지네이션 페이지네이션은 데이터를 컨트롤 방식이 아닌 버튼 형식으로 보여주는 방식을 말한다. 방대한 데이터를 다룬다면 끝없이 내려가는 컨트롤 방식보다는 버튼 형식이 더 낫다고 생각한다. 백엔드 개발자이기 때문에 프론트가 아닌 백엔드에서 데이터 전달 시에 어떻게 페이지네이션 할 수 있는지 알아보도록 하자. 1. MongoDB 메소드 사용하기 가장 간단하면서, 자주 사용하는 방식이 아닐까 생각한다. const page = Number(req.query.page || 1); // 현재페이지 const perPage = Number(req.query.perPage || 10); // 페이지 당 게시글 수 const total = await Post.countDocument({}); // MongoDB 함수 사.. 2023. 2. 10.
[Error] Sharp - Error: Input file is missing / Error: Input buffer contains unsupported image format + Axios로 파일 통신 받을 때 생기는 오류 npm sharp란? NodeJS에서 이미지를 resize하고 싶을 때 자주 사용하는 라이브러리는 sharp라고 할 수 있다. Weekly Downloads가 100만이 넣을 정도로 많은 개발자들이 사용한다. 이미지를 Resizing 해줄 뿐만 아니라 Compositing 등 이미지에 한해서는 다양한 기능이 있다. 궁금한 사람들은 아래 공식 문서를 보길 추천한다. https://sharp.pixelplumbing.com/ sharp - High performance Node.js image processing sharp.pixelplumbing.com 문제 시나리오 나의 경우 DB에 저장된 이미지를 A라는 서비스가 B 서비스로 보낼 때 문제가 생겼다. 너무 간단하게 말하는 것 같아 코드를 보면서 이야기하.. 2022. 12. 2.
Express에서 로그인 서비스 만드는 방법 with.Session 이미 7월 달에 세션으로 로그인 하는 서비스를 만들어본 경험이 있다. 근데 이번에 로그인 서비스를 구현할려고 하니 기억이 안나서 구글링이나 하고 있어 직접 포스팅을 해야겠다는 필요성을 느꼈다. 개발자 글쓰기 주제를 못 정하겠다면 나처럼 구글링 한 내용을 포스팅 하면 300개는 금방일 것 같다. 1. 필요한 모듈 설치하기 세션을 이용하기 위해서는 설치해줄 모듈이 2개 정도 있다. npm install express-session express에서 제공해주는 express-session을 꼭 설치해야한다. 2. session 사용을 위한 미들웨어 생성하기 app.use(cors({ origin: true, credentials: true })) app.use(cookieParser()); app.use(se.. 2022. 10. 12.
[Jest] Axios undefined 해결하기 with.mock Axios로 통신하여 데이터를 잘 가져오는지 확인하기 위해 테스트 코드를 작성했다. 하지만 예상과 달리 결과값이 undefined였다. 공식문서를 확인해보니 axios를 테스트하기 위해서는 jest.mock를 써줘야했다. 공식문서 : https://jestjs.io/docs/mock-functions#mocking-modules Mock Functions · Jest Mock functions allow you to test the links between code by erasing the actual implementation of a function, capturing calls to the function (and the parameters passed in those calls), capturi.. 2022. 9. 14.
728x90
반응형