전체 글
-
Nest.js Pipes(변환, 유효성 검사)FrameWork/Nest.js 2022. 7. 11. 17:15
Pipes Pipes에는 2가지 사용사례가 있다. 변환 : 입력 data를 원하는 형식으로 변환할 경우 (예: 문자열에서 정수로) 유효성 검사 : 입력 data를 평가하고 유효하면 변경 없이 전달하지만 그렇지 않은 경우는 Exception을 발생시킨다. Object 형태로 전달되는 @Param() Object 의 속성을 @Param() 문자열 인자로 전달한 경우 ParseIntPipe를 이용하여 전달값 형변환 Pipe가 validation Error를 내는 경우 Pipes and Filters Pattern 일반적인 경우 유효성 검사 data가 들어왔을 때 즉 사용자가 Request를 했을 때 해당하는 메서드가 수행이 될 것이다. 이를 테면 그 data에 대해서 유효성 검사도 하고 변환도 수행하는 Tas..
-
Nest.js Exception FilterFrameWork/Nest.js 2022. 7. 11. 16:51
Exception Filters service의 형태의 따라 errorMessage를 custom해 줄 필요가 발생할 수 있다. Error Message Custom Error Message Overriding HTTP Exception 할 때 마다 success 속성이 동일하게 들어가고 message형식만 달라지는 형식 만들고 싶다면 각기 다른 url에 매칭된 함수마다 오버라이딩된 HTTP Exception을 반복적으로 적어 주어야한다. Exception 처리들이 어느 구간에서 모아서 처리할 수 있다. 즉 filtering을 겉쳐서 재사용성을 높인 형태에서 Response로 반환하여 사용할 수 있는 것이다. Http-Exception Filter(provider side) 위 코드에 있는 respons..
-
Node.js 로그인 화면 만들기 1 (View,Route,Controller)카테고리 없음 2022. 7. 11. 13:29
view 화면 분리하기 View Engine 화면 view를 관리 해줄 file이 저장된 폴더 이름을 set 메소드에 두번째 인자로 넘겨준다. 그리고 views 폴더에 생성될 html 파일들의 코드를 어떤 engine으로 해석할지 정할 수 있다. => ejs 사용 *ejs : 많이 사용되는 view engine중에 하나로, html과 굉장히 유사하다. 도메인에 url에 요청이 왔을 때 해당 하는 ejs 파일에 매칭을해주어야 한다. 이것을 res.render 메서드에 인자로 매칭할 ejs 파일과 경로를 넣음 으로써 할 수 있다. npm으로 ejs를 설치하고 서버를 restart하면 url매칭된 ejs가 정삭적으로 반환되서 화면에 출력되고 있는 것을 확인할 수 있다. routing 다른 file로 분리하기 ..
-
Nest.js Logger Middleware(provider,consumer)FrameWork/Nest.js 2022. 7. 10. 15:34
어떤 대상이 어떤 것을 요청했는지 출력해주는 middleware nest g middleare Middleware 공급자 생산 DI가 가능하기 때문에 @Injectable 데코레이터가 붙어있다. express와 비슷하게 use() 메소드를 통해 middleware를 사용할 수 있다. req: Request안에는 요청하는 대상에대한 정보가 다 담겨있다. Middleware를 DI하는 방법 @Module()에서는 middleware를 위한 consumer로써의 사용을 표시하기 위한 공간이 없기 때문에 configure() module의 메서드를 사용해서 middleware 사용을 표시해주어야 한다. 또한 middleware를 consumer가 되는 module은 NestModule 인터페이스를 구현해야한다...
-
NodeJS Timer와 Call Stack의 연관개발언어/Node.js 2022. 7. 9. 17:27
Timer timer는 Call Stack과 Task Queue를 넘 나들 수 있다. timer는 global객체에 정의 되어 있기 때문에 따로 import를 하지는 않아도 괜찮다. setInterval()이라는 함수를 이용해서 일정한 간격별로 특정한 일을 수행할 수 있도록 한다. 즉 setInterval()에 전달하는 callback함수는 1초단위로 수행이된다. 실행 결과를 보면 1초단위로 숫자가 끊임없이 증가하여 출력되는 것을 확인 할 수있다. serInterval()함수는 따로 중지 하지 않는 이상 계속 수행이 되므로 이것을 취소 할 수 있어야 한다. 취소하기 위해서는 interval이라는 함수는 인자로 callback함수와 ms를 전달하면, Timer이라는 것을 전달해 준다. 이 Timer 객체를..
-
NodeJS Process 정보개발언어/Node.js 2022. 7. 9. 16:09
Process Node프로그램이 동작하고 있는 프로세스에 대한 정보를 가져오는 것 process의 정의부를 확인해보면, global객체 역시 process안에 정의 되어 있는 것을 확인할 수 있다. 그 이후에 쭉내리면, interface Process에서 Process에서 사용가능한 것들을 확인해 볼 수 있다. openStdin(): Socket; socket을 연다. abort(): never; chdir(directory: stirng): void; cwd(): string; 현재 경로를 출력한다. getgid(): number; setgid(id: number | string): void; getuid(): number; setuid(id: number | string): void; 프로세스 관련 ..
-
Node.js-Event-Driven개발언어/Node.js 2022. 7. 9. 15:42
Event-Driven NodeJs Runtime환경에 작성한 SourceCode를 동작하게하면, 실제로는 NodeJsApp형태로 App레벨에서 동작하게 된다. App안에는 동적으로 생성한 data를 보관하는 Memory Heap이라는 곳이 있고, 또 작성한 code의 함수의 순서를 정확하게 기억하는 CallStack이 있다. CallStack은 main()이라는 함수를 처음으로 호출하고, main()함수를 수행하다가 main()안에서 중간에 first()를 호출하고 또 first()를 수행하다가 중간에 second()를 호출하면, 순서대로 Call Stack이 쌓이게 되고, second() 끝나면 다시 first()에서 second() 호출한 시점으로 돌아간다. second()함수에서 return한 값..
-
NodeJS 4가지 특징개발언어/Node.js 2022. 7. 9. 15:38
1. JavaScript Runtime EcmaScript 표준과 WebAssembly를 구현한 V8(c++)이라는 chome brower에서 사용하고 있는 강력한 JavaScript Engine은 c++로 작성이 되어 있고 open source 프로젝트이다. JavaScript Runtime Enviroment이기 때문에 NodeJS JavaScript 언어를 사용할 수 있다. 2. Single Thread NodeJS에서 동작하는 App은 Single Thread이다. Thread/Process 운영체제(Operation System)에서 여러가지 프로그을 동시에 실행하게 되면 각각 프로그램마다 프로세스가 할당이 된다. 즉 프로세스가 프로그램이라고 봐도 무방하다. 프로세스가 병렬적으로 실행되는 것처럼..