Я пытаюсь зашифровать свой пароль и сохранить в базу данных mon go и authcontroller. js ниже
const userSchema = require("../models/usermodel");
const bcrypt = require('bcryptjs');
exports.signUp =async (req,res)=>{
const {name,email,password} = req.body;
//check if user exists
const userexists = await userSchema.findOne({email : req.body.email});
if(userexists)
{
res.status(403).json({error : " Email already taken"});
}
const user = await userSchema.create({
name,email,password
});
res.status(200).json({user});
};
usermodel. js как показано ниже
const mongoose = require("mongoose");
const bcrypt = require('bcryptjs');
const userSchema = mongoose.Schema({
name : {
type : String,
required : "Name is required",
trim : true
},
email: {
type: String,
required: "Email is required",
trim : true,
match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Please fill a valid email address']
},
password: {
type: String,
required: "Password is required",
trim: true
},
salt: String,
created: {
type: Date,
default: Date.now
},
updated: {
type: Date
}
});
userSchema.pre('save',async (next) =>{
console.log(this);
const salt = await bcrypt.genSalt(10);
this.password = await bcrypt.hash(this.password, salt);
});
module.exports = mongoose.model("users", userSchema);
Я пытался передать req userSchema.pre ('save', asyn c (req, next)), чтобы получить параметры post в модели, но не смог достичь, Может кто-нибудь помочь получить данные поста this.password в usermodel