서버/nodejs
node.js 에서 middleware Skip 하는 방법
프로젝트를 진행하면서, 경우에 따라 푸시알림(FCM)을 발생시켜야 했다. 이는 전부 미들웨어로 구현하였고, 푸시알림을 발생 시키지 않을 경우에는 관련 미들웨어를 건너 뛰게 하였다. 해당 부분을 까먹기 전에 기록으로 남긴다. 위의 라우터에 대해 간단하게 차례로 설명하자면 아래와 같다. 1)setCurrentUser : JWT를 decode 하여 사용자id 추출 2)createPooData : 라즈베리파이로 부터 받아온 대변의 색상 값을 DB에 Create 3)searchFcmKey : App으로 부터 받아서 DB에 저장해 놓은 FCM Key값 조회 4)createPushAlarm : 푸시알림 발생 1, 2번 미들웨어는 항상 사용돼서 건너 뛸 필요가 없지만, 3번과 4번 미들웨어는 경우에 따라 사용하지 않기..
갑자기 궁금해져서 정리하는 js 변수 선언 방식
프로젝트를 진행 하면서 여러 자료를 참고하는데, 문득 const / var / let 의 차이를 알고 싶어져서 정리하게 되었다. 1. var var은 큰 단점을 가진다. var test = 'god' console.log(test) // god var test = 'sang' console.log(test) // sang 같은 이름의 변수를 다시 선언해도 각각 다른 값이 출력된다. 유연한 변수 선언으로 간단한 테스트에는 편리 할 수 있지만, 큰 프로젝트 처럼 코드량이 많아 질 경우 가독성이 떨어진다. 이를 보완하기 위해 추가 된 변수 선언 방식이 'let' 과 'const' 이다. 2. let, const 위 var의 코드에서 변수 선언 방식만 바꾸게 되면 아래와 같다. let test = 'god' c..
Sequelize 사용 기록(CRUD/Pagination) - 03
오늘은 진행하는 프로젝트에서 데이터를 조회하는 부분을 구현하였다. dog_poo 테이블에서 최신순으로 정렬한 후 "RGB"값을 두개 씩 보내주는 것이 목표였다. 어떻게 구현해야 할지 찾아보던 중 "pagination" 이라는 것이 있어서 사용하였고, 이를 기록으로 남긴다. const readPooData = async (req, res, next) => { const pooData = req.query; const Op = Sequelize.Op; var startDate = new Date(pooData.date); var endDate = new Date(pooData.date); endDate.setDate(endDate.getDate()+1); try { const result = await db..
너무 헤매서 기록하는 sequelizer 사용 일지 02
나의 소중한 9시간을 소비하여 익힌 sequelizer에 대해 정리하겠다. 1. column에 대한 수정은 migration을 통해 진행한다. - npx sequelize migration:generate --name - 해당 명령어를 통해, migrate파일 생성한 후에, 수정할 내용 작성 2. 수정한 내용은 바로 model에 적용하여야 한다. ※ migration은 DB에 적용하는 것. model은 코드상에서 작동하는 것으로 구분지어서 이해해야 한다. association 설정하는 방법 1. 처음 model:generate 를 통해 생기는 파일에 직접 추가하지 않는다. 2. mirgration:generate 를 통해 생기는 파일에 "addColumn"을 사용하여 foreignKey를 추가한다. 3...
Sequelize 사용 기록 - 01
설치에 대한 설명은 생략하겠다. 1. Model 생성(migration 파일 생성) $ npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string 2. Migrate $ npx sequelize-cli db:migrate (취소) npx sequelize-cli db:migrate:undo 3. Update a column ( 본인의 경우 unique 설정) 1) $npx sequelize-cli migration:create --name migration_file_name 2) 해당 파일 변경 await queryInterface.changeColumn('Users', 'ema..
내가 헤매서 쓰는 Firebase <-> Nodejs 연동
작성 배경 해당 사항이 필요했던 이유는 프로젝트를 진행함에 있어서, App에서 Google 로그인을 하기 위해 Firebase를 사용했고, 토큰(사용자UID)를 서버(nodejs)에서 디코드 하여 "email"값으로 사용자를 구분해야만 했다. 문제를 해결하기 위해서 "구글 클라우드 플랫폼"을 사용해도 됐지만, 협업을 위해 Firebase로 진행하였다. 하지만 자료가 많이 없었고, 공식문서를 참고하여도 쉽게 해결되지 않았기 때문에 기록으로 남긴다. 설명 1번째 글에서는 firebase와 nodejs를 연동시키는 것 부터 서술하겠다. 준비 :Firebase Console 제작. Firebase Console에 대한 설명은 후에 따로 글로 작성할 예정이다. (필자는 먼저 해둠) 01. $ npm install..