Node.js, Express(19)
-
express 유효성 검사 방법 [ express-validator ]
개발을 진행 할 때 if문 범벅이 되어서 코드 작성이 가독성이 떨어진다. express-validator는 if문 범벅 유효성 검사를 아주 간단하게 유효성 검사를 도와주는 라이브러리다 if문 범벅 예시 if (!index || !stageCheck || !playTime) { console.log('데이터가 없습니다. 1') } else if ( typeof index !== 'number' || typeof stageCheck !== 'string' || typeof playTime !== 'number' ) { console.log('타입 형식을 맞춰주세요, 2') } express-validator 사용 시 const { validationResult, body } = require('express..
2022.05.23 -
JS 음수에서 양수 변환 방법 Math().abs()
음수를 양수로 변환해주는 Math().abs() 함수를 사용 하면 된다. 양수 일 때는 음수로 변경되지않는다 사용방법 const exp = -5; Math.abs(exp); console.log(exp) // 5 const exp2 = 5; Math.abs(exp2); console.log(exp2) // 5 출처: https://andwinter.tistory.com/275
2022.05.17 -
Passport-jwt Cookie에 저장된 토큰 값 사용 방법
Passport-jwt에서 지원 해주는 토큰 저장소가 있다. fromHeader(field_name) = http header fromBodyField = body fromUrlQueryParameter = url query fromAuthHeaderAsBearerToken = bearer 하지만 Cookie에 저장 된 토큰 값을 가져오지 못하는데 이 때 커스텀 함수를 작성하여 토큰 값 을 적용 해줄 수 있다. 1. cookieExtractor 함수에서 저장된 user 토큰값을 추출하고 return 2. jwtFromRequest에 cookieExtractor에서 받은 토큰 값 을 가져와 유저를 확인하고 done함수로 넘겨준다. passport.ts 일부 const cookieExtractor = fun..
2022.05.16 -
ES5 | ES6 import/export, CommonJs require 방법
프론트 엔드 쪽에서는 ES5, ES6를 주로 사용하고 백엔드 express 같은 경우 commonJS를 사용한다. 1. ES5, ES6 [ export (name, default) | import ] export : 모듈로 내보내기 사용법 : export default와 export name 방식이 존재 한다. export default export default는 파일 하나에 하나의변수 또는 클래스만 있다고 개발자에게 명확하게 알려 주는 기능과 export default class User { // export 옆에 'default'를 추가해보았습니다. constructor(name) { this.name = name; } } class User { // export 옆에 'default'를 추가해보았..
2021.08.30 -
Socket.io Node에서 하는 방법 (연결 시 이벤트)
Socket.io는 실시간 양방향 서버와 클라이언트간 통신이 가능해 상호작용이 가능한 기술이다. 환경 : express-generator, ejs express : 서버 ejs : 클라이언트 순서 : socket.js 파일 생성 => ./bin/www 에서 require, import하여 함수 실행 => 클라이언트 ejs 파일 생성 작동 : 클라이언트에서 이름, 나이, 채널 을 가진 정보로 해당하는 채널명에 맞춰 유저가 접속 한 후, 해당 채널명을 입력 해 주면 해당 채널에 들어간 유저들을 불러온다. 설치 : npm i socket.io 1. ./socket/socket.js socket.io 연결 파일 생성 const socketIo = require('socket.io') module.exports ..
2021.08.26 -
failed to parse private key 오류 해결 (firebases .env파일) dotenv
firebase를 이용 할 때 민감 정보가 들어가있는 json파일을 받게 된다. json파일을 그대로 git에 푸시하는것은 보안적인 이슈가 발생 할 수 있으니 dotenv를 사용하여 .env와 같은 환경변수로 처리 해준다. 그럴때 .env에 private_key가 .env 파일에 들어가면 failed to parse private key: Error: Invalid PEM formatted message 이란 메시지가 발생하며 실행이 안된다. 해결 방법은 private_key끝에 replace(/\\n/g, '\n')를 넣어주면 정상적으로 작동한다. env.private_key.replace(/\\n/g, '\n') const account = { project_id: env.project_id, pri..
2021.08.18