일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 정렬
- Nest.js
- dfs
- OCR
- Queue
- Python
- nestjs
- Sequelize
- GIT
- JavaScript
- nodejs
- Dinosaur
- game
- 공룡게임
- flask
- AWS
- typeORM
- 게임
- class
- MySQL
- react
- Express
- 자료구조
- mongoose
- MongoDB
- cookie
- TypeScript
- Bull
- jest
- Today
- Total
목록Express (20)
포시코딩
개요 이전부터 프론트엔드로부터 전달 받는 값들에 대해 프론트엔드에서 validation 처리가 진행됐다는 가정하에 (귀찮은것도 있고) 백엔드에서는 최소한으로만 진행을 해왔었다. 하게 되더라도 팀원들과 controller에서 체크를 할거냐 service에서 체크를 할거냐 라는 토론을 하기도 했었다. 결국 controller는 service가 잘 작동하도록 데이터를 전달하는 역할을 하는것이고 어떠한 로직을 수행한다는건 service에서 해야되기 때문에 service에서 하는걸로 결론이 났었지만 하지만 지속적으로 validation이 추가로 필요할 것 같다는 피드백을 받았었고 그 방법으로 여러가지 추천을 받아 이번 기회에 정리해보려고 한다. validation 방법들 express에서 validation 하는..
개요 사용자 인증 미들웨어를 만들면서 인증 실패하는 각각의 상황에 따라 return res.status(코드).json(내용); 위 코드를 작성하는게 너무 반복되는걸 보고 다른 더 좋은 방법이 있는지 생각하게 되었다. 계속 생각하면서 지금까지 배웠던 것중에 응용이 가능할 것 같은게 두가지 있었는데 다음과 같다. 방법 1 - 에러 핸들링 며칠전에 강의를 들으면서 에러 처리를 특이하게 하는걸 발견했는데 app.js에서 맨 마지막에 app.use(errorHandler); app.use(notFoundHandler); 위 코드를 위치시켜 놓고 import HttpException from "../common/httpException"; import { Request, Response, NextFunction ..
Sequelize란? Node.js의 대표적인 ORM인 Sequelize는 MySQL, PostgreSQL, MariaDB 등 많은 RDBMS를 지원하고 Promise 기반으로 구현되었기 때문에 비동기 로직을 편리하게 작성할 수 있다. MongoDB 사용할 때 Mongoose를 사용해봤다면 이해하기 쉬울것이다. 설치 및 세팅 DB 생성 npm i sequelize mysql2 npm i sequelize-cli -D npx sequelize init 설치하면 아래와 같은 폴더구조가 생긴다. 내 프로젝트 폴더 이름 ├── models │ └── index.js ├── config │ └── config.json ├── migrations ├── seeders ├── package-lock.json └── ..
개요 간단한 개인 프로젝트 과제를 마치고 AWS EC2에 배포까지 완료된 상황이었는데 메인 페이지가 비어있어 그냥 hello world를 넣는거보단 예전부터 해보고 싶었던 API 문서 자동화 라이브러리를 써서 메인페이지에 API 명세서를 뿌려주면 어떨까? 라는 생각을 하게 됐다. 그래서 express + api 문서 자동화 관련 검색을 해봤는데 하나같이 다 swagger 라는걸 사용하고 있었다. 스웨거(Swagger)란? - [출처]위키백과 스웨거(Swagger)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 대부분의 사용자들은 스웨거 UI 도구를 통해 스웨거를 식별하며 스웨거 툴셋에는 자동화된 문서화,..
개요 위 사진과 같은 collection이 있을 때, members 안에 멤버 Object를 추가해줘야 하는 상황이다. Raid.updateOne( { _id: ObjectId(_id) }, { $push: { members: 멤버 Object } } // ...생략 ); 일반적이면 그냥 updateOne에 $push를 쓸테지만 데이터가 얼마나 많을지 몰라 이걸 계속 디비에 반복해서 작업하게 할 순 없었다. 목적은 요청 한번으로 디비안에 members에 [member1, member2, member3, ...]을 기존 데이터에 추가로 넣어주는 것이었는데 Array에 대해 $each를 써줌으로 해결할 수 있었다. $each 말그대로 Array의 각 데이터를 그 위의 명시해놓은 $push 처리를 해주는 방식..
문제 발견 여느때처럼 Node.js Express 환경에서 기능 개발을 하고 있었는데 RESTful하게 만들던 와중 delete 요청에 대해 내가 Axios를 통해 보낸 값들이 서버로 전달되지 않는 것을 알았다. 예전에 GET 요청에 대해서도 비슷한 상황을 겪어봤기 때문에 이번에도 DELETE 요청 자체에 문제가 있다는 생각이 들어 PUT 요청으로 바꾼 뒤 다시 테스트를 진행했다. 결과는 성공. 해결책 도출 해결책 1. DELETE 말고 다른 HTTP method 사용 역시 DELETE에 문제가 있어서 그런건 알게 되었지만 그렇다고 RESTful하게 작업중인데 DELETE를 안쓰는 것도 이상하고 PUT 역시 사용하게 될지도 모른다는 생각에 이 방법은 보류하기로 했다. 해결책 2. GET 요청때처럼 par..
1. (SELECT) Users 컬렉션에서 id로 검색하기 User.find({ id: id }, (err, data) => { 2. (SELECT) Groups 컬렉션에서 members column에 해당하는 Object Array에서 _id값으로 검색하기 Group.find({ members: { $elemMatch: { _id: ObjectId(_id) } } }, (err, data) => { 3. (INSERT) Users 컬렉션에 id, psword, name 값으로 된 데이터 넣기 User.create({ id: userInfo.id, psword: userInfo.psword, name: userInfo.name }, (err, result) => { 4. (UPDATE) Groups 컬렉..
https://www.zerocho.com/category/NodeJS/post/57924d1e8241b6f43951af1a https://www.zerocho.com/category/NodeJS/post/57924d1e8241b6f43951af1a www.zerocho.com 기존에 있던 프로젝트를 리뉴얼 하다가 MongoDB Cloud를 통해 쓰던 데이터들을 MySQL로도 해보자! 해서 AWS RDS도 프리티어로 열어서 호기롭게 시작했다. 처음에는 오랜만에 사용하는 MySQL 쿼리문들에 어색함과 낯설음이 들었지만 차차 적응해갈 무렵 문제가 생겼다. 프로젝트 특성 때문인지 내가 그렇게 설계한것인지 JSON Object와 JSON Array를 쓸 일이 많았는데 json_array, json_unquote..
* 이미 nodejs - express 서버를 실행할 수 있는 환경이 만들어져 있다는 전제하에 진행되는 포스팅입니다. local에 있는 MongoDB 데이터가 위와 같이 있을 때, nodejs 서버로 가져와보자 terminal npm install mongodb server.js const express = require('express'); const app = express(); const path = require('path'); const MongoClient = require('mongodb').MongoClient; let db; const db_uri = 'mongodb://localhost:27017'; // compass로 접속할 때 쓰이는 uri와 같다. MongoClient.conne..
1. nodejs 최신버전 설치 링크 Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. 프로젝트 이름으로 된 폴더 생성 후 해당 폴더로 에디터 실행 (vscode 사용했음) 3. nodejs 서버 세팅 npm install express # nodejs 웹 프레임워크 sudo npm install -g nodemon # 수정될때마다 자동으로 서버 재실행해주는 모듈. # -g : 글로벌로 설치해서 다음 프로젝트부턴 다시 설치할 필요 없게끔 server.js const express = require('express'); const app = express(); app.listen(8080..