error TS5055: Cannot write file 'interface.d.ts' because it would overwrite input file. njestjs 혹은 ts 환경에서 개발하다보면 자주 발생하는 오류다. [23:19:22] File change detected. Starting incremental compilation... error TS5055: Cannot write file 'D:/Projects/2022/nest-js-api/dist/item/dtos/item.dto.interface.d.ts' because it would overwrite input file. [23:19:22] Found 1 error. Watching for file changes. 이런경우에 대부..
[nestjs/mssql] ConnectionError: Failed to connect to 127.0.0.1:1433 - self signed certificate 오류 해결 및 nestjs mssql 적용 법 postgresDB를 연결 하다가, 조금 더 안정적고 엔터프라이즈급 DB로 갈아타기위해 mssql로 변경하였다. 변경하는 과정에서 mssql은 조금 설정이 달랐다. 단순 라이브러리 교체로는 self signed certificate 오류가 발생한다. //기존 "dependencies": { "@nestjs/common": "^8.1.1", "@nestjs/config": "^1.1.0", "@nestjs/core": "^8.1.1", "@nestjs/platform-express": "^8.1..
[nestjs/mssql] ConnectionError: Failed to connect to 127.0.0.1:1433 - self signed certificate 오류 해결 및 nestjs mssql 적용 법 postgresDB를 연결 하다가, 조금 더 안정적고 엔터프라이즈급 DB로 갈아타기위해 mssql로 변경하였다. 변경하는 과정에서 mssql은 조금 설정이 달랐다. 단순 라이브러리 교체로는 self signed certificate 오류가 발생한다. //기존 "dependencies": { "@nestjs/common": "^8.1.1", "@nestjs/config": "^1.1.0", "@nestjs/core": "^8.1.1", "@nestjs/platform-express": "^8.1..
[typescript/nestjs] (개인저장용)스케쥴에 맞는 시간 동기화 로직 구현(server) getTime(): number { //서버 시간 const severTime = new Date(); //스케쥴을 시작할 시간 const startTime = new Date(Date.parse('Tue, 07 Dec 2021 05:00:00 GMT')); //총 33초의 스케쥴이 존재 IDLE-5 AR-10 PRE_EVENT-4 EVENT-10 POST_EVENT-4 합 33 초 const ScheduleMaxTime = 33; while (true) { //startTime에 ScheduleMaxTime을 돌려 현재 서버시간에 맞춘다. startTime.setSeconds(startTime.getSe..
[nestjs/swagger] nestjs에서 간단하게 swagger를 활용한 document(문서) 자동화 [API 실행 / 테스트 / 파라미터 ] 3/3 @Controller('beacon') @ApiTags('비콘 API') export class BeaconController { constructor(private readonly service: BeaconService) {} @Post() @ApiOperation({ summary: '등록', description: '정보를 등록한다.' }) @ApiCreatedResponse({ description: '등록', type: tb_beacon, }) @ApiBody({ type: tb_beacon }) async create(@Body() cr..
[nestjs/swagger] nestjs에서 간단하게 swagger를 활용한 document(문서) 자동화 [구현] 2/3 [Get 함수 구현에 API 문서 정보 등록하기] @Controller('beacon') @ApiTags('비콘 API') export class BeaconController { constructor(private readonly service: BeaconService) {} @Get('/:id') @ApiOperation({ summary: '목록 조회', description: '목록 조회', }) getTestOne(@Param('id') id: number): Promise { return this.service.getOne(id); } } @ApiTags - Contr..
[nestjs/swagger] swagger를 활용한 document(문서) 자동화 nestjs로 api 서버를 개발하다보면 문서화의 번거로움을 이뤄 다 말할 수 없다, 고민 끝에 자동화 툴인 swagger를 써보기로했는데 이게 아주아주 매력적인 라이브러리이다. 다음과 같이 제법 깔끔한 UI로 문서가 제공된다. $ npm install --save @nestjs/swagger swagger-ui-express 먼저 설치를 진행하자 $ touch ./src/utils/swagger.ts 설치가 완료된 후엔 swagger.ts 파일을 생성하자 import { INestApplication } from '@nestjs/common'; import { SwaggerModule, DocumentBuilder } ..
[nestjs] 5. api를 위한 기본 구성 추가 싸이클(db/controller/module/service) [쉘에 스크립트 추가] $ nest g co point $ nest g s point $ nest g mo point $ mkdir ./src/point/entities/ $ mkdir ./src/point/dtos/ $ touch ./src/point/entities/point.entity.ts $ touch ./src/point/dtos/point.dto.interface.ts 만약에 point관련된 요소를 추가한다면 위와같이 추가를하면된다. 위에 구성은 그동안 프로젝트를 진행해왔던 구성이다. 그리고 기존 코드를 활용하여 필요한 요소만 추가하면된다. 이것으로 샘플 프로젝트는 끝을 내겠다. ..
[nestjs] 4. nestjs환경에서 설정파일 config로 빼기(Joi, config) cross-env와 joi를 활용하여 기존 설정파일을 외부로 빼었다. [cross-env] os에 종속되지 않고, 플랫폼 표준화를 하기위해 필요한 라이브러리 [joi] 형식에 대한 유효성 검사를 한다. [@nestjs/config] 설정 파일을 외부에서 가져오기 위한 nestjs에서 제공되는 모듈 [설치] $ npm install @nestjs/config cross-env Joi [구현] .env.dev 파일과 .env.prod 파일을 생성하여 외부 config파일을 추가하여 데이터베이스 설정을 개발환경과 배포환경으로 분리하였다. 또한 TypeORM의 자동 생성은 안정성을 위하여 개발환경에서만 진행하게하였다. ..
[nestjs] 3. nestjs 환경에서 기본적인 CRUD(Create Read Update Delete) 완성하기 지난시간에 기본적인 TypeORM을 활용하여 데이터베이스연결까지 완성하였으니, 기본적인 CRUD(Create Read Update Delete)를 완성해보자. 여기서 테스트 프로젝트에서는 당장은 Update기능을 사용하진 않으니 Update기능을 제외하고 사용해보겠다. [test.module.ts] import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Photo } from './entities/photo.entity'; import { TestController }..