일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nginx
- 타입스크립트
- 노마드코더
- Load Balancer
- java
- AWS
- 조건문
- Node.js
- reduce
- mongoose
- CORS
- TypeScript
- MYSQL
- 항해99
- wil
- 프로그래머스
- Nodejs
- elb
- JWT
- ubuntu
- Joi
- 생활코딩
- JavaScript
- nomadcoder
- mongodb
- npm
- 메소드
- https
- 자바스크립트
- it
- Today
- Total
목록Nodejs (17)
V-logue
ubuntu 서버에 파일질라로 파일들을 옮기고 나서, node서버를 실행시키려니 다음과 같은 에러가 발생했다. 각설하고 얘기하자면, 해결법은 간단하다. $ rm -rf node_modules/ $ npm update 우분투 서버에 위와 같은 코드를 입력하고 실행하면 문제가 해결된다.
Node로 코드를 짜다보면 은근히 흔하게 볼 수 있는 에러의 종류인데, Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 에러가 뜨는 원인이 내가 찾은 해답을 제외하고도 또 있을 수 있겠지만, 아마도... 주로... 구글로 찾아보니.. 서버가 클라이언트에게 둘 이상의 응답을 보내려고 할 때 뜨는 에러일 확률이 상당히 높다. router.get('/auth', authMiddleware, async(req, res) => { try { const user = res.locals.user if(user === undefined) { res.status(401).json({ errorMessage: "로그인이 ..
Helmet은 express사용시 헤더의 설정을 바꿔주면서, 드러나면 해킹에 취약하게 될 부분들을 잡아주는 그런 패키지다. 사용법은 무척 간단한데, 일단 Helmet을 설치해주고, 미들웨어를 넣어준다. 참고로, csp, expectCt, hpkp, noCache, referrerPolicy는 따로 설정을 해줘야 사용할 수 있고 app.use만으로는 돌아가지 않는다. npm install helmet app.use(helmet()); Helmet을 이용하면 HTTP 헤더를 적절히 설정하여 몇 가지 잘 알려진 웹 취약성으로부터 앱을 보호할 수 있다. 사실 Helmet은 보안 관련 HTTP 헤더를 설정하는 다음과 같은 더 작은 크기의 미들웨어 함수 9개의 모음이다. 참고로 helmet 5버전부터는 따로 설정을..
먼저, https://developers.kakao.com에 들어가 시작하기 버튼을 누르고 애플리케이션을 추가한다. 애플리케이션 추가하기 버튼을 누르면 다음과 같은 화면이 나오는데, 앱 이름과 사업자명을 입력하고 저장버튼을 누른다. 그러면 이제 다음과 같은 화면이 나오게 된다. REST API키는 따로 저장해두고, 왼쪽 카테고리를 보면 카카오 로그인이 있을 것이다. 카카오 로그인을 누르고나서, 카카오 로그인 밑에, 활성화 설정이 있는데 이 부분의 상태값을 ON으로 바꿔준다. 그리고 밑쪽의 Redirect URI를 설정해준다. Redirect URL를 설정해주고(Local환경에서 테스트 해보는거라 저렇게 했다.) 동의항목을 누른 후 프로필정보 중 닉네임을 클릭하고 . 다음과 같이 필수동의로 바꿔준다. 그다..
Node와 FE에서 사용자가 이미지를 올리는 방법은 여러가지가 있는데, 개인 서버에 static 폴더를 만들어서 클라이언트로부터 요청받은 파일을 저장하는 방법과 db에 저장하는 방법이 있고, 마지막으로 AWS S3 버킷을 이용해서 이미지 파일을 저장하고 db에 버킷의 경로를 받아서 서버가 이 경로로 클라이언트에 응답하는 방법이 있다. 찾아보니, axios로 form태그를 사용해 이미지를 넘기려면 multer를 사용해야 한다고 하니 어처피 나는 이 multer에 대해서 배웠어야 했다. 이 AWS S3를 사용하면 개인 서버에 저장하는 것에서 고려도는 PC 성능을 고려하지 않아도 되고, 또 이 S3 버킷이라는게 내가 사용하는 만큼 비용을 지불하는 것이기 때문에 비용적인 부담도 줄어들어 아주 효율적인 서버를 구..
Joi joi는 JavaScript에서 가장 강력한 Schema를 설명하는 언어 및 데이터 유효성(validation) 검사기이다. 설치는 다음과 같이 시작한다 npm install joi 사용법은 간단하다. 먼저, 조이를 require를 통해 불러와주고 const joi = require("joi") 유효성을 검증할 Schema와 검증을 시도할 body를 구성한다. const UserSchema = joi.object.key({ userId: joi.string().min(4).max(20).required(), password: joi.string().min(8).max(20).required(), email: joi.string().email().required() }) const user = { ..
Bcrpyt, bcrypt.hashpw(password, bcrypt.gensalt()) bcrpyt는 암호를 해시화 하는데, 도움이되는 라이브러리다. 1999년 USENIX에서 발표된 ..... 암호 해싱 기능이다. 비밀번호 해싱(Password hashing)이란? 유저가 클라이언트에서 입력한 정보가 db에 저장되는데, 비밀번호와 같은 정보는 아주 민감하고 안전하게 다뤄줘야 한다. 만약 유저가 1q2w3e4r이라는 Plain Text를 입력하고, 이대로 Plain Text가 db에 저장된다면 서버 관리자가 알 수 있음은 물론이고 해커마저도 쉽게 알아낼 수 있을 것이다. 바로 이럴때에, 필요한 것이 해싱인데 해싱은 위의 Plain Text를 특정적인 해시화하는 무언가를 사용해 잘게 쪼개고 어렵게 인간이..
https://surprisecomputer.tistory.com/32 [Node.js] express cors 사용하기 1. 서론 리버스 프록시 서버로 NGINX를 두고 한 워크스테이션에서 Swagger와 node.js 서버를 함께 구동한 적이 있다. Swagger의 포트를 8085로 지정하고 node.js 서버는 443번으로 지정했는 데, CORS 에러가 발 surprisecomputer.tistory.com CORS(Cross-Origin Resource Sharing)란 자신이 속하지 않은 다른 도메인, 다른 프로토콜, 혹은 다른 포트에 있는 리소스를 요청하는 cross-origin HTTP 요청 방식이다. cross-origin HTTP 요청 방식에 대해서는 mozilla 사이트의 다음의 그림을..