yarn berry 에러: yarn berry를 찾을 수 없다는 문구가 포함 Internal Error: The "yarn-path" option has been set (in /home/hjj/wsl-poc/test/.yarnrc.yml), but the specified location doesn't exist (/home/hjj/wsl-poc/test/.yarn/releases/yarn-3.2.1.cjs). at i (/home/hjj/.node/corepack/yarn/3.2.1/yarn.js:449:11811) at async r (/home/hjj/.node/corepack/yarn/3.2.1/yarn.js:449:10914) 1. 프로젝트에서 .yarnrc.yml 파일을 제거한다 2. yar..
nestjs 에서 passport를 사용한 local 인증 구현 흐름 분석 passport 에서 아쉬운 점 1. Request 객체의 user key로 결과값을 반환 받는데, 공식문서에서 설명이 미흡한 점. 2. 위의 1번 항목, local.strategy 에서, user key 대신 다른값으로 받을 수 있도록 속성 변경 못하는 점(내가 못찾았거나) 3. Interface를 만들어서 usernameField, passwordField, requestField 로 기본 제공되었다면 어땠을까 함. 위의 3번 항목, 직접 사용자가 인터페이스를 구현하여 보완 하면 사용과 분석이 편리할 듯 함. Source code 필요패키지 설치 후, 모듈과 서비스를 cli로 설정 $ npm install --save @nes..
500 Internal server error 직접 내리려면 면 throw new Error 를 사용하여 테스트하면 된다 router.get('/', (req,res,next)=>{ throw new Error("BadRequest"); }); app.use(function(req, res, next) { res.status(500).sendFile(path.resolve(__dirname, "public", 'errorpage/500.html')); // res.status(500).send({status:500, message: 'internal error', type:'internal'}); }); 404 에러 app의 최하단에 정의하면 된다 app.use(function(req, res, next..
정상적인 프로세스는 /logout 처리를 통해서 기존의 session cookie를 삭제해야 하는데 새로운 계정의 request가 들어와서 cookie를 만들었다면 res.clearCookie가 안먹히는(...) 현상이있었다 router.get('/logout', (req,res,next)=> { res.clearCookie("access_token"); res.redirect("/"); }); 아래와 같이 setCookie에서 overwrite: true ( default false ) 로 해결 이전에 설정한 동일한 이름(여기서는 acces_token)을 덮어쓸지 여부이다. // 쿠키를 [ 키 : 값 ] 으로 파싱 const parseCookie = req => { if (!req.headers.coo..
Node.js example for SameSite=None; Secure 크롬에서 도메인이 다은경우 쿠키가 전송되지 않는 문제 A cookie associated with a cross-site resource at was set without the `SameSite` attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at a..
단일 함수에서 var todo = function (req, res){}; app.get("/", todo); app.get("/blabla", todo); app.get("/blablablabla", todo); 멀티플 라우팅은 다음과 같이... app.get( ['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'], function ( request, response ) { } ); https://stackoverflow.com/questions/15350025/express-js-single-routing-handler-for-multiple-routes-in-a-single-line
nodemon Nodemon은 소스의 변경 사항을 모니터링하고 서버를 자동으로 다시 시작하는 유틸리티입니다. 개발버전과 테스트에 적합하며. 패키지매니저인 npm, yarn을 사용하여 설치가 가능합니다. nodemon을 구동하면 소스코드가 변경 될 때 프로세스가 자동으로 다시 시작됩니다. install npm $ npm install --save-dev nodemon yarn $ yarn add nodemon --dev Execution 기본 실행 $ nodmon [노드 앱] $ nodemon ./bin/www $ nodemon src/index.js 재실행 이미 nodemon이 실행중이라면 rs 로 프로세스를 다시 시작할 수 있다. ( nodemon 구동중 ... ) rs 여러 디렉토리 실행 기본적으로 ..
NodeJS의 nodemon 실행에서 "이미 사용중인 앱의 포트가 충돌 중"이라는 메세지가 자꾸 뜬다.. 이 고약한 메세지는 데몬은 띄워주는데 터미널에서 로그를 안보여준다ㅠㅠ 해결방법이 2가지가 있다 첫번째 솔루션 - kill 3000번 포트 사용중인 프로세스를 kill 하기 위해서 프로세스 아이디를 알아내야 한다. 알아내는 방법은 netstat, 포트를 알고있다면 lsof 를 사용하면 된다. netstat(network statistics)는 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스 (네트워크 인터페이스 컨트롤러 또는 소프트웨어 정의 네트워크 인터페이스), 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령 줄 도구이다. $ netstat -ntpl lsof : list..
As name suggests it comes in middle of something and that is request and response cycle Middleware has access to request and response object Middleware has access to next function of request-response life cycle Middleware functions can perform the following tasks: Execute any code. Make changes to the request and the response objects. End the request-response cycle. Call the next middleware in t..