라벨이 Error인 게시물 표시

JSON 변환 응답 에러 - NestJS

이미지
 아래는 작성한 코드이다. for (let i = 0; i < reserve.length; i++) {       reserve[i]['requestProduct'] = [];       for (let j = 0; j < requestItems.length; j++) {         if (requestItems[j].reserveId === reserve[i].id) {           console.log("push requestProduct item : ", reserve[i]);           reserve[i]['requestProduct'].push(reserve[i]);         }       }     } [Nest] 713  - 07/25/2024, 9:37:19 AM   ERROR [ExceptionsHandler] Converting circular structure to JSON     --> starting at object with constructor 'BusinessRequestReserveEntity'     |     property 'requestProduct' -> object with constructor 'Array'     --- index 0 closes the circle 해당 오류( Converting circular structure to JSON )는 객체 내에 순환 참조(circular reference)가 있을 때 JSON으로 변환하려고 하면 발생합니다. NestJS에서 이런 문제가 발생하는 주된 이유는 ...

TypeScript_JEST TypeScript로 Node TestCast만들기 : 에러상황을 테스트하기 -3

이미지
  // src/app/Main.ts import { parse , UrlWithParsedQuery } from "url" ; export class Fun { public static parseUrl ( url : string ) : UrlWithParsedQuery { if (! url || url . length <= 0 ) throw Error ( 'url is empty' ) // url이 비어있을시 에러발생 return parse ( url , true ); } public static toUpperC ( arg : string ){ return arg . toUpperCase (); } } // src/test/Main.test.ts import { Fun } from '../app/Main' describe ( 'Main test suite' , () => { // 해당 describe테스트에서 아래만 제외한다. test ( 'first test' , () => { console . log ( 'test work!!!' ) const str = Fun . toUpperC ( 'str' ); expect ( str ). toBe ( 'STR' ); // Fun.toUpper의 결과가 문자열 STR 이어야 한다 }); test ( 'parse URL' , () => { const url : string = 'http://localhost:3000/signup' ; const port : string = url . split ( 'localhost:...

NestJS Error https 통신중 unable to verify the first certificate 에러

 NestJS으로 POST통신중 문제가 생겼고 해결을 해서 블로그에 남깁니다. import axios from 'axios' ; import { PushBodyDto } from 'src/type/sendPushMessage.dto' ; require ( 'dotenv' ). config (); const https = require ( 'https' ); export async function sendPushMessage ( body : PushBodyDto ) { return await axios . post ( process . env . NESTJS_RESTAPI_URL + '/push-noti/send/message' , { httpsAgent : new https . Agent ({ rejectUnauthorized : false , }), data : body , }) . then (( res ) => { console . log ( '푸시메세지 보낸후 데이터 : ' , res . data ); return res . data ; }) . catch (( err ) => { return err ; }) . finally (() => console . log ( '푸시메세지 요청 완료!' )); } 코드1) 초기 Post Request 코드 위 코드에서 POST요청으로 다른서버에 Push요청을 보내는 코드 입니다. 오류 발생시 무시하는 코드(rejectUnauthorized : true)를 넣었음에도 불구하고 아래와 같이 응답이 왔습니다. 응답데이터(Click) --------------------------------------------- ...

Axios 서버에서 axios요청을 다른서버로 보낼시 에러(https)

 NestJS(NodeJS)서버에서 다른 NestJS(NodeJS)서버로 GET요청을 할때 발생된 에러 입니다.  아래는 터미널  출력 내용입니다. Axios URL :  https://goodgame:5000/users/single fetch error :  AxiosError: unable to verify the first certificate     at TLSSocket.onConnectSecure (node:_tls_wrap:1530:34)     at TLSSocket.emit (node:events:394:28)     at TLSSocket._finishInit (node:_tls_wrap:944:8)     at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:725:12) {   code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE', 위보다 훨씬 길었지만 중요한 것은 fetch error와 code입니다.  위 문제를 해결하기 위해서 axios에 코드를 추가해 줘야 합니다. const https = require ( 'https' ); const response = await axios . get ( process . env . NESTJS_RESTAPI_URL + '/users/single' , { headers : { 'Content-Type' : 'application/json' , authorization : 'Bearer ' + token , }, httpsAgent : new https . Agent ({ rejectUnauthorized : false , //허가되지 않은 인증을 reject하지 않...

Ubuntu 20.04 에러

  1. Ubuntu의 셋팅이 열리지 않을시 대처법 셋팅(setting)이 실행이 안됨 - 'gnome-control-center'가 손상됬을 가능성이 있기 때문에 삭제를 한다. $ sudo apt-get remove gnome-control-center copy - autoremove를 실행하여 나머지도 자동 삭제 시킨다. $ sudo apt autoremove copy - 'gnome-control-center'를 다시 설치해 줍니다. $ sudo apt-get install gnome-control-center copy

docker 설치시 발생하는 에러

이미지
 1. docker버전 확인시 아래와 같이 'permission denied'가 된 상태 파일 권한을 666으로 변경하여 다른 사용자도 접근 가능하게 변경한다. $ sudo chmod 666 /var/run/docker.sock copy

Go(golang) 에러 출력하기

이미지
package main import ( "errors" "fmt" ) func main (){ // 2개의 변수 설정 var num1 , num2 float32 fmt. Printf ( "Enter num1 : " ) fmt. Scan (&num1) fmt. Printf ( "Enter num2 : " ) fmt. Scan (&num2) result , err := divideValues (num1, num2) // 에러 발생시 if문 출력 if err != nil { fmt. Println (err) return } fmt. Println ( "result :" , result) } func divideValues (x,y float32 ) ( float32 , error ) { // y값이 0일시 나눌수가 없음으로 error출력 if y == 0 { err := errors. New ( "cannot divide by zero" ) return 0 , err } result := x/y return result, nil }   divideValues함수는 y값에 0이 들어오면 return으로 0, [Error내용] 이 나오도록 하였습니다. 사진1) 테스트 사진1과 같이 num2(y)값에 0을 입력하게 되면 'cannot divide by zero'가 출력됩니다. 그 외에 대해서는 정상적으로 값이 출력 됩니다. 개발자 디스코드 서버에 초대합니다. 사진) 아래링크 클릭시 커뮤니티로 초대 Comunity Discord Link

Error : PostgreSQL에서 세션 접속을 강제 종료하기(ERROR: database "DB Name" is being accessed by other users)

이미지
 PostgreSQL작업을 하다보면 DB를 지워야 할때가 있습니다. 그런데 아래와 같은 에러가 발생할때가 있습니다. 사진1) DB삭제시 발생에러 사진1과 같이 다른곳에서 DB의 세션으로 묶여있으면 그 세션을 종료할때까지 DB를 삭제할수가 없습니다. 그래서 강제 종료를 해야 합니다. PostgreSQL세션 강제 종료하기 $ SELECT      pg_terminate_backend(pid)  FROM      pg_stat_activity  WHERE      -- don't kill my own connection!     pid <> pg_backend_pid()     -- don't kill the connections to other databases     AND datname = 'test2'; copy 사진2) DB강제 접속 종료 이제 접속이 차단된 상태에서 DB를 지우도록 하겠습니다. 사진3) DB 정상 제거 이제 DB를 지울수가 있습니다. 위 코드는 DB 이름이 test1인 경우로 진행한 것입니다. 필요에 따라 변경이 가능합니다.

Error (MongoDB Atlas) : Connections % of configured limit has gone above 80

이미지
 안녕하세요. 이번에는 MongoDB를 사용하다가 발생한 에러에 대해서 말씀드릴려고 합니다.  사진1) 에러 사진 위 에러에서 발생한 이유는 서버쪽에서 MongoDB쪽의 connection을 끊지 않고 유지하기 때문에 발생하는 현상입니다. 특히 Atlas의 무료버전을 사용하고 있다면 connections을 500개까지 허용하고 있습니다. 사진2) limit까지 올라간 connections  즉 어디선가 접속을 하고 close를 하지 않은 것입니다. 그럼 해당 문제가 되는 코드를 확인해 보겠습니다. const { MongoClient } = require ( 'mongodb' ); const url = 'mongodb+srv://alex:vlfvhdwntsdfghetk@xrstudio.q7lsz.mongodb.net/myFirstDatabase?retryWrites=true&w=majority' ; const client = new MongoClient ( url ); // 접속할려는 MongoDB 서버의 url을 지정한다. // Database Name const dbName = 'test' ; // 모든 데이터를 얻기 위한 함수 export async function getAllData () { await client . connect (); // 몽고DB에 접속을 한다. console . log ( 'Connected successfully to server : getAllData' ); const db = await client . db ( dbName ); // 해당 MongoDB의 DataBase을 지정한다(위 코드는 'test' DB를 선택) const collection = await db . collection ( 'games' ); // collection을 선택한다.(위 코드는 'game...

에러해결(Error) PostgresSQL의 컬럼 string을 데이터 초기화 없이 integer로 변경

이미지
 안녕하세요. 알렉스 입니다. 이번에 업무를 보다가 해결한 문제를 블로그 글로 작성할려고 합니다. 예전에 가격을 'VARCHAR'로 지정해서 그것을 모두 'Integer'로 변경해야 했습니다. 그런데 이때 데이터의 변환 없이 그대로 바꿔야 했죠.  입력되어있는 데이터는 모두 숫자로 구성된 문자로 단순히 문자를 숫자로 변환해주면 되는 것이였습니다. 사진1) payment table 현재 테이블에서 gamePrice가 있는데 종류가 'character varying'으로 되어있습니다. 즉 'VARCHAR'로 되어 있는 것입니다. 사진2) 2개의 record 사진2에서 2개의 레코드가 DB에 저장된 것을 알수 있습니다. 이제 보통 column의 속성을 바꿀때 쓰는 sql문을 사용해 보겠습니다. 1. Table의 column속성을 변경하기 - 해당 컬럼속성을 변경합니다. 아래는 VARCHAR속성에서 INTEGER로 변경하는 것입니다. ALTER TABLE payment ALTER COLUMN "gamePrice" TYPE integer; copy 예상대로 integer로 전환이 안된다고 나옵니다. 그런데 여기서 힌트가 있는데 "USING "gamePrice"::integer"를 쓰라고 하네요. 이걸 추가해서 사용하도록 하겠습니다. 2. Table의 column속성을 변경하기(기존 데이터 유지) - 해당 컬럼속성을 변경합니다. 아래는 VARCHAR속성에서 INTEGER로 변경하는 것입니다. ALTER TABLE payment ALTER COLUMN "gamePrice" TYPE integer USING "gamePrice"::integer; copy      사진4) 변경되지 않은 record 위 사진 3,4를 보면 column값이 성공적으로 VARCHAR -> INTEGER로 변경...

JavaScript Error - module.exports_1

이미지
const express = require ( 'express' ); const router = express . Router (); // Router를 쓰기 위해서 필요 const members = require ( '../../Members' ); // app은 router로 변경 console . log ( 'err1' ); // Gets All Members router . get ( '/' , ( req , res ) => { console . log ( '/api/members' ); res . json ( members ); }); console . log ( 'err2' ); // Get Single Member router . get ( '/:id' , ( req , res ) => { console . log ( 'err3' ); // res.send(req.params.id); const found = members . some ( member => member . id === parseInt ( req . params . id )) if ( found ){ console . log ( 'err4' ); res . json ( members . filter (( mem , idx ) => { return mem . id === parseInt ( req . params . id ); })) } else { console . log ( 'err5' ); res . status ( 400 ). json ({ msg : `No member with the id of ${ req . params . id }...

JavaScript Error - concat_1

이미지
There was an Error message while entering to recursive function. Error Message : Uncaught TypeError : reverse(...).concat is not a function In this case, I want to build an array by using a concat function. But there was an error. So I have to find out what's the problems. first I have to find which variable is coming in front of the concat. It has to be an array. When I check the base, it wasn't. it was a number. So I switch to an array. function   reverse ( arr ) {      const   head  =  arr [ 0 ];      if ( arr . length  ===  1 ){        return   arr [ 0 ];  // Error     }      else   if ( arr . length  >  1 ){        return   reverse ( arr . slice ( 1 )). concat ( arr [ 0 ]);     }        }    function   revers...

LabVIEW bug - 엑셀저장오류(Excel_Save_Workbook.vi)

이미지
안녕하세요. 알렉스 입니다. 오늘은  NI_ReportGenerationToolkit.lvlib를 사용하다가 생기는 오류에 대해서 알려드리겠습니다. 이 오류는 제가 여러 프로젝트를 하다가 발견한 것인데 서로다른 Excel버전 또는 다른 LabVIEW버전을 사용할시 빈번하게 나타날수 있습니다. 그림1) 엑셀저장함수 사용시 에러발생  위 함수 를 사용하다가 그림1과 같은 에러가 발생시 크게 2가지 원인이 있을수 있습니다.  그림2) 'Save Report File.vi'에 들어갈때 창 위 오류는 엑셀을 해결하기 위한 오류로   함수를 더블 클릭하면 그림2와 같은 창이 나타납니다. 이때 Excel 카테고리로 들어가시면 됩니다. 그림3) MS Office 인증이 안된 상태 그림3과 같이 나타난다면 Excel이 인증을 받지 않았다는 뜻입니다. 해결하기 위해서는 정품 Excel를 사용하셔야 합니다.  그림4) MS Office 인증후 블록다이어그램 MS Office에 인증을 받은후 블록다이어그램을 열어보시면 실행파일이 깨져있다는 것을 알수 있습니다. 깨진 함수도 들어가봅니다. 그림5) 깨진 인보크노드 깨진 함수로 들어가다보면 인보크 노드가 원인인 것을 알수 있습니다. 그림6) 깨진 이유 그림6과 같은 경우는 주로 버전 차이에 따라 나타나는 현상입니다. 특히 오래된 MS Office를 사용할때 자주 나타난 증상이지만 해결방법은 간단합니다. 그림7) 우클릭후 변경  먼저 인보크노드 상태를 바꾸기 전에 연결노드는 잘 기억해 줍니다. 그리고 인보크 노드를 우클릭을 하면 그림7과 같이 여러 목록이 나타납니다. 이중에서 Save로 변경합니다. 그림8) 인보크 노드가 Save로 변경 그렇게 되면 기존에 연결되었던 연결노드가 모두 끊어지게 됩니다. 그리고 다시 그림7처럼 우클릭후 'Save As'로 변경해 줍니다. ...