목록공부 (179)
저장을 습관화
- module이란 분리된 자바스크립트 파일이며, 각 파일은 특정한 기능을 가진 여러 개의 함수와 변수들의 집합이다. module은 그 자체로도 하나의 프로그램이면서 다른 프로그램의 부품으로 재사용될 수 있다. 1개의 파일이 1개의 모듈이 되는 것이 일반적이다. - 사용법 모듈 파일에서 export 모듈을 사용하고자 하는 파일에서 import, 혹은 require - 예시 1. 일반적인 사용법 math.js function add(a, b) { return a + b; } module.exports = add; // module 선언 run.js const add = require("./math.js"); // 같은 경로의 math.js 파일에서 모듈을 가져옴을 선언 console.log(add(10, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NyQLE/btskRPY8OPJ/BikDqY4YUQKnTZMBT99N6K/img.png)
- 증상 회원 관리 기능, 로그인 후 자신의 정보 확인하는 기능 작성 중 정상적으로 로그인 되었음에도 받아온 토큰의 검증이 틀리는 문제 발생 아래는 관련 로그 JsonWebTokenError: invalid signature at C:(생략)\node_modules\jsonwebtoken\verify.js:171:19 at getSecret (C:(생략)\node_modules\jsonwebtoken\verify.js:97:14) at module.exports [as verify] (C:(생략)\node_modules\jsonwebtoken\verify.js:101:10) at module.exports (C:(생략)\middlewares\auth-middleware.js:31:28) at Layer...
- 회원가입 기능 추가할때 사용한 패키지 $ npm install jsonwebtoken $ npm install cookie-parser jsonwebtoken - JWT을 생성, 검증 및 관리하기 위한 패키지 JWT는 클라이언트와 서버 간에 안전하게 정보를 전송하기 위해 사용되는 인증 토큰이다. JWT 패키지를 사용하면 사용자 인증 및 권한 부여와 같은 보안 기능을 구현할 수 있다. 토큰 생성, 검증, 해석의 기능을 한다. JWT - JSON Web Token, JSON 형태의 데이터를 안전하게 교환하여 사용할 수 있게 해주는 인터넷 표준 규격 비밀키를 모르더라도 복호화가 가능하기 때문에 민감한 정보를 담으면 안됨 쿠키나 세션과는 달리 데이터를 교환하고 관리하는 등의 역할은 하지 않음. 단순 데이터 ..
- .sort() 메소드 const todos = Todo.find().sort("order"); // 할 일 목록에 대한 모든 정보를 가지고 온다. // .sort("order") 메소드에 의해서 order를 기준으로 오름차순으로 정렬한다. // 만약 .sort("-order")라고 적는다면 order를 기준으로 내림차순 정렬한다. - HTTP 메소드 중 put과 patch의 차이 PUT과 PATCH 모두 리소스의 업데이트를 의미하나 PUT은 리소스의 모든 것을 업데이트 하고 PATCH는 리소스의 일부를 업데이트한다는 차이가 있다 예를들어 이름, 나이, 성별이라는 key가 있을때 PUT으로 이름만 업데이트 했을경우 나이와 성별은 null이 되나 PATCH로 이름만 업데이트 했을경우 나이와 성별은 기존값..
https://search.shopping.naver.com/book/catalog/32436248685?cat_id=50010881&frm=PBOKPRO&query=%EC%9E%90%EB%B0%94+%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8+%EC%99%84%EB%B2%BD+%EA%B0%80%EC%9D%B4%EB%93%9C&NaPm=ct%3Dlj2terxk%7Cci%3D98eced97e85bb9b1776c8b34f953e4ad8a2bf7ee%7Ctr%3Dboknx%7Csn%3D95694%7Chk%3Db1a6d4f39dbbb9506853935ee849a33c9616cc58 자바스크립트 완벽 가이드 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.na..
현재 상황 mongoDB에서 자동적으로 생성되는 _id를 다시 사용하고자 한다. return this._id.toHexString(); 이 과정에서 _id는 string 형식으로 맞춰주고 싶지만 평소처럼 this._id.toString을 했을 경우 아래와 같은 에러가 발생할 수도 있다. Error: Expected "ID" to be a plain object. .toHexString() 메소드는 1. .toString() 메소드의 하위 함수이다(포함된다) 2. 상대적으로 더 좁은 의미의 함수이기 때문에 예외 발생률을 줄여주기 위해서 사용하였다. 3. ObjectID 형태의 id를 24바이트의 hex 문자열로 바꿔 리턴하는 기능을 한다.
https://mongoosejs.com/docs/timestamps.html Mongoose v7.3.0: Mongoose Timestamps Mongoose schemas support a timestamps option. If you set timestamps: true, Mongoose will add two properties of type Date to your schema: createdAt: a date representing when this document was created updatedAt: a date representing when this document was las mongoosejs.com https://choice91.tistory.com/49 [Node.js / Se..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6KO2E/btskrmPI3X4/W5exaKLk6Z9E2edwbaQny1/img.png)
1. 증상 mongoose를 이용하여 MongDB에 POST할 경우 발생 app.js의 실행을 강제적으로 종료시킴 에러 로그는 아래와 같음 C:(생략)\node_modules\mongodb\lib\operations\insert.js:50 return callback(new error_1.MongoServerError(res.writeErrors[0])); ^ MongoServerError: E11000 duplicate key error collection: Gaein_Gwaje.comments index: commentId_1 dup key: { commentId: null } at C:(생략)\node_modules\mongodb\lib\operations\insert.js:50:33 at C:(생..
mongoDB, mongoose 사용 중 의아한 부분이 생겼다. schema를 적은 파일 comment.js를 작성 중 아래와 같이 ...(중략)... module.exports = mongoose.model("Commnet", commentSchema); 'Comment'가 아닌 'Commnet'으로 오타가 났는데도 다른 파일에서 가져다 사용하는데 아무런 지정이 없었다. ...(중략)... const Comment = require("../schemas/comment.js"); ...(중략)... 어떻게 이게 가능했을까 검색해보니 이유는 다음과 같았다. module.exports = mongoose.model("Commnet", commentSchema);에서 module.exports는 Node.js..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pocan/btsjWpBigDx/6i24SlOPCUDPOZd7tTASk1/img.png)
이번 과제에서 한 내용 요약 - Node.js, express를 통한 웹 서비스와 CRUD 기능이 담긴 REST API 구축 - MongoDB/mongoose를 통한 DB 구축 - 구축한 서비스를 AWS EC2를 통하여 배포 1. 과제 요구 조건에 맞춘 Directory Stucture 구성 - 요구 조건 . ├── app.js ├── routes │ ├── index.js │ ├── comments.js │ └── posts.js └── schemas ├── index.js ├── comment.js └── post.js - 생성 2. package.json 생성 $ npm init $ npm init -y를 입력하여 입력사항을 전부 생략하고 바로 설치도 가능하다 모든 질문사항에 yes를 입력한 것과 ..