inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

User.js 안에서 var user = this; 에 대한 궁금증

301

Sehyeon Oh

작성한 질문수 1

0

userSchema.pre("save"function (next) {
  var user = this;
  
  //user == userSchema

  if (user.isModified("password")) {
    //model 속 field 안에 'password'가 바뀔때만.
    //비밀번호를 암호화 시킨다.
    bcrypt.genSalt(saltRoundsfunction (errsalt) {
      if (errreturn next(err);
      //next 하면 index.js user.save function으로 바로 넘어간다.
      bcrypt.hash(user.passwordsaltfunction (errhash) {
        //hash == 암호화된 비밀번호
        //user.password ==> plainPassword
        if (errreturn next(err);
        user.password = hash;
        next();
      });
    });
  }
});

userSchema.pre("save", function (next) {
   var user = this;

}

이 부분에 대한 궁금증입니다.

하단에 user.password =hash로 쓰기위해 

var user = this; 를 쓴다는것을 그냥 보면 알겠는데,

제 머릿속에서는 var user = this.userSchema라고 선언을 해야 

user에 userSchema가 담길것같은데 그냥 this;로 진행해도 실행이 되서 좀 의아해서 질문글을 올립니다. 

nodejs react

답변 1

0

TaeHyeon Kim

제가 알기론 스키마는 User의 구조를 의미하는 거라, 회원 정보를 담을 땐 User를 담아야 하는 걸로 알고있어요.

// request에서 회원 정보 가져오기
const user=new User(req.body);
    user.save((err, doc)=>{
        // 몽고디비에 저장
    });

위 index.js에서 user.save를 진행하면

User.js의 userSchema에 [request에서 받은 user 정보]를 담기 위한 코드여서 this(user)로 진행해야 정보가 담기는 듯합니다.

실제로 console.log로 테스트해보면 아래와 같은 결과가 뜹니다.

const user=this;
console.log(this); // 유저 정보 json형태
console.log(this.Schema); //undefined
console.log(user); // 유저 정보 json형태
console.log(user.Schema); //undefined

조금이나마 도움이 되면 좋겠어서 답변을 달았습니다 :)

부족하거나 잘못된 정보가 있다면 추가로 댓글 및 답변 부탁드립니다!

깃 이메일이랑 비번이 필요하다고 하네요

0

38

1

404 에러

0

105

1

34강 인증 체크에서 element 사용 때문에 에러나시는 분들 이렇게 하심 됩니다.

0

121

1

로그인, 로그아웃, 토근 작동 안 함

0

242

0

9강 오류 어떻게 해결하나요?

0

195

1

localhost 에서 연결을 거부했습니다.

0

1944

4

포스트맨에서 true가 안떠요

0

152

1

왜 안되나요

0

130

1

몽고db 연결 오류가 납니다 위에껀 입력한 코드, 아래껀 터미널이에요

0

244

1

로그아웃 401 에러(Unauthorized)

0

506

2

암호가 해싱되지 않고 입력값 그대로 db에 저장되는 문제

0

152

1

7강중에서

0

167

2

User.findByToken is not a function

0

214

1

루트 디렉토리

0

275

1

useState

0

564

1

프록시 잘 설정했는데도 404 오류 뜨는 분들

5

879

6

webpack 관련 에러 질문

0

221

1

리액트 관련 질문

0

275

1

14강 로그아웃 안됨

0

319

1

mongoDB 데이터 확인하는 법

0

413

1

postman 에러

0

295

1

선생님 리덕스를 사용하면 어떠한 부분이 좋은지 알 수 있을까요?

0

236

1

다음과 같은 에러들이 발생합니다.

0

277

1

14강 로그아웃 기능 구현시 postman에서 Cannot POST 오류가 뜹니다.

0

380

1