일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- https
- Joi
- 메소드
- elb
- nginx
- 조건문
- AWS
- mongoose
- JWT
- 노마드코더
- 생활코딩
- mongodb
- Nodejs
- nomadcoder
- java
- CORS
- Load Balancer
- npm
- 항해99
- 자바스크립트
- TypeScript
- it
- ubuntu
- 타입스크립트
- 프로그래머스
- wil
- MYSQL
- reduce
- JavaScript
- Node.js
- Today
- Total
목록Nodejs (17)
V-logue
AWS EC2 프리 티어 에이 노드 앱을 배포하려고했을 때 이 문제가 발생했다. 이 문제는 현재 내 ubuntu 서버에 깔려있는 Node가 최신 버전이 아니기 때문인데, 해결책은 Node와 npm을 최신 버전으로 업그레이드 하면 된다. $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - Personal Package Archive, 개인 패키지 저장소인 ppa를 설치해준다. 참고로 , 다른버전을 설치하고 싶다면 setup_14.x부분을 다른 버전으로 바꿔주면 된다. sudo apt install nodejs 문제 해결
스트레스 테스트를 위해 서버를 새로 생성하고, 서버에 node와 npm을 깔고 package.json파일을 npm install로 읽어오려고 하니 다음과 같은 에러가 발생했다. npm missing required argument #1 npm 버전이 최신버전이 아니라서 생긴 버전 문제라는데, npm cache clean --force sudo npm install -g n sudo n stable 를 차례대로 입력하면 npm install할 수 있다.

AWS ELB와 Nginx로 HTTPS 서버 구축하는 도중 서버를 테스트 하는 과정에서 문제가 발생했다. node app.js로 서버를 시작하고나서 별다른 동작이 없는데도 불구하고, 계속해서 GET / 404요청이 들어오는 것이다. 이 문제를 해결하기 위해서 server section의 server_name과, location section의 proxy_pass값에 문제가 있다고 인식하고 값을 수정하기로 했다. (참고로 http Ip 주소는 실제 ip 주소말고 임의의 ip 주소를 넣었다.) server { listen 80; server_name rendev.link; // 단순히 nginx가 어떻게 http요청을 처리하는 지 알려주는 section location / { proxy_pass http:/..

실전 프로젝트를 진행하면서, 로그인 기능을 구현하게 됐다. jwt를 통해 로그인을 구현하는 건 항해를 진행하던 중 늘 하던 일이라, 별로 어렵지 않았는데 refreshToken을 사용하자는 말이 나왔다. jwt는 기본적으로 Stateless한 방식이라서 토큰을 발급해주는 서버측에서는 토큰을 가지고 있는 유저가 과연 진짜 유저인지 확인할 수 없다는 에로사항이 발생한다. 요약 무상태(Stateless) - 클라이언트와 서버 관계에서 서버가 클라이언트의 상태를 보존하지 않음 을 의미한다. 장점 : 서버의 확장성이 높기 때문에 대량의 트래픽 발생 시에도 대처를 수월하게 할 수 있다. 이에 대한 보안적인 측면을 강화하기 위해서 등장한게 refresh token인데 이 refresh token이라는걸 사용함으로서,..

Joi라는 패키지를 사용하다보면, 흔히 발생할 수 있는 오류이다. 일단 기본적으로, schema에 정의되지 않은 key값이 req.body로 들어온다면 저 error가 발생하는 모양이다. 나같은 경우는, validateAsync로 받지 않는 userId와 nickname값이 body로 들어오기 때문에 발생한 에러라, 스키마 마지막에 unknown(true)를 붙여줌으로써 해결했다.

프로젝트를 진행하던 중, 비밀번호를 변경하는 api를 짤 일이 생겼고, 또 동시에 변경된 비밀번호가 제대로 잘 변경됐는지 확인해 볼 필요가 생겼다. 하나씩 검증해 나가는 과정에서, 비밀번호가 잘 변경됐는지도 확인해야하고 또 변경된 비밀번호로 로그인도 잘 진행된다는 점도 확인해야 하며 변경된 후의 상태에서 이전의 비밀번호로 로그인이 되는지 확인해야 했다. 1. 비밀번호가 잘 변경됐는지 확인하기 위해 table상의 password의 hash값이 변하는지 확인 2. 변경된 비밀번호로 로그인할 때 에러없이 잘 로그인이 진행되는지 확인 3. 이전의 비밀번호로 로그인 했을 때 발생할 수 있는 에러 확인 이제 절차로 보면 위에 적은 것과 같이 진행됐다. 비밀번호 변경 api 코드는 다음과 같다. const updat..
실전프로젝트 1주차 회고, 우리는 개발자와 개발자간의 토이 프로젝트를 지원하고 매칭시켜주는 플랫폼을 개발하기로 했다. 노드의 강점이라고 할 수 있는 실시간기반의 서비스와 MSA의 이상적인 무언가를 도입하기 위한 노력을 하기로 했다. 그리고 단연 이번주의 화두는 DB였다. 기존에 사용하던 몽고db에서 mySQL로 넘어가는 과정이 그렇게 순탄치많은 않았고, 또, 처음 서버에 DB를 두고 그 db에 외부에서 접속해서 사용해보는 것도 초심자에게는 어려웠다고 할 수 있다. 일단 몇가지 에러가 발생해 https://vlogue.tistory.com/79 [mySQL] Error: Access denied for user 'root'@'localhost' (using password: NO) 참고로 모든 사례에서 이..
참고로 모든 사례에서 이렇게 해결된다는 것은 아니고, 이런 경우도 있다는 점을 참고해주면 좋겠다. 프로젝트를 진행하던 중 각자의 api를 통합해서 테스트를 해야할 일이 생겼다. repo를 만들어 각자가 로컬에서 테스트하던 api들을 하나로 합치고, git에서 merge한 다음 테스트를 각자 해보기로 했는데 테스트 중 Error: Access denied for user 'root'@'localhost' (using password: NO)라는 error가 계속해서 발생하게 됐다. node:events:505 throw er; // Unhandled 'error' event ^ Error: Access denied for user 'root'@'localhost' (using password: NO) 문제..