현재 다니고 있는 회사도 그렇고, 많은 회사들이 실제로 FK 제약을 걸지 않지만, 논리적으로 같은 속성끼리 참조하여 JOIN 한다고 한다. 그래서 나도 현재 하고 있는 토이프로젝트에서 참조 제약을 걸지 않으면서 JOIN하는 방법을 쓰고 있는데, MikroORM을 이용해서 JOIN하는 방법을 정리해보려고 한다. 1. RAW QUERY 실행 EntityManager를 이용하면 Raw Query를 실행할 수 있다. 2개 이상의 join을 실행할 때는 Raw Query를 사용하는 게 편했다. 다만 EntityManager는 각각의 DBMS에 따라 import 해줘야 하기 때문에 여러 DBMS에서 호환시키려면 적합하지 않을 수 있다. 아무래도 내가 명시적으로 어떤 속성끼리 참조를 할 건지 작성하므로 마음이 편했다..
Typescript기반 NestJS에서는 DTO를 interface가 아닌 class로 선언한다. 그 이유는 TypeScript의 클래스는 JavaScript ES6 표준을 따른다. 컴파일된 JavaScript에서 class는 실제 엔터티로 보존되는 반면에 interface는 변환 중에 제거되기 때문에 런타임 시 NestJS는 인터페이스를 참조하지 못한다. 참고 https://docs.nestjs.com/controllers#request-payloads Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side application..
TypeOrmModuleOptions에서 아래와 같이 작성함 import { TypeOrmModuleOptions } from "@nestjs/typeorm"; export const TypeORMConfig: TypeOrmModuleOptions = { type: 'postgres', host: 'localhost', port: 5432, username: 'postgres', password: 'postgres', database: 'example', entities: [__dirname + '/../**/*.entity.{js,ts}'], synchronize: true } 이게 안 먹음 EntityMetadataNotFoundError: No metadata for "SomethingReposit..
'string' 형식은 'DatabaseType' 형식에 할당할 수 없습니다.ts(2322) TypeORM을 사용하면서 development 환경에선 sqlite를 사용하고 staging 환경에서는 postgres, production 환경에서는 aurora-postgresql을 사용하고 싶었다 그래서 각각의 환경 변수의 파일인 .development.env, .staging.env, .production.env 에 DATABASE_TYPE으로 구분해서 저장하고 싶었다. 그러나 TypeORM의 모듈인 TypeOrmModule에서 forRoot에 데이터베이스 타입 속성값인 type은 string이 아닌 DatabaseType이란 typeorm 라이브러리가 정의한 타입이다 // DatabaseType.d.t..
⛳️ NestJS란? 공식문서 (https://docs.nestjs.com/) 번역 Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac docs.nestjs.com NestJS는 효율적이고, 확장 가능..
Node.js(Express)를 이용해 지도를 포함하는 프로젝트를 진행 중이었고, 두 지점 사이의 중앙의 위도, 경도를 구하는 작업이 필요했다. 두 좌표점의 중앙값을 구하는 방법이 뭐 사인값 구하고 코사인값 구하고.. 이런 공식을 사용하면 되긴 했지만 잘 만들어진 라이브러리가 없나 찾아보다 Turf라는 라이브러리를 찾게 되었다. http://turfjs.org/ Turf.js | Advanced Geospatial Analysis Modular Turf is a collection of small modules, you only need to take what you want to use turfjs.org geospatial한 작업을 할 수 있도록 해주는 Node.js 라이브러리다. 위 공식사이트에 들..
🛠 npm-check-updates package.json 를 의존성에 맞게 자동으로 최신 버전으로 업데이트 해주는 패키지 공식 링크 : https://www.npmjs.com/package/npm-check-updates npm-check-updates Find newer versions of dependencies than what your package.json allows. Latest version: 12.5.2, last published: 5 days ago. Start using npm-check-updates in your project by running `npm i npm-check-updates`. There are 397 other projects in the npm registr..