user.js 1.04 KB
Newer Older
Choi Ga Young's avatar
Choi Ga Young committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const mongoose = require('mongoose');
const bcrypt = require("bcrypt");
const saltRounds = 10;

const { Schema } = mongoose;
const userSchema = new Schema({
    name: {
        type: String,
        required: true,
    },
    password: {
        type: String,
        
    },
15
16
17
18
19
20
21
22
23
24
25
    role: {
      type: String,
      default:'user',
    },
    answer:{
      type: String,
    },
    question: {
      type: String,
    },
  
Choi Ga Young's avatar
Choi Ga Young committed
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
    id: {
        type: Number,
        required: true,
    },
    
});

userSchema.pre("save", function (next) {
    let user = this; //User모델 자체를 가르킴.
  
    //model 안의 paswsword가 변경 또는 생성될 때 암호화
    if (user.isModified("password")) {
      bcrypt.genSalt(saltRounds, function (err, salt) {
        if (err) return next(err);
        bcrypt.hash(user.password, salt, function (err, hash) {
          if (err) return next(err);
          user.password = hash;
          next();
        });
      });
    } else {
      next();
    }
  });


module.exports = mongoose.model('User', userSchema);