Amar Ahmed
Amar Ahmed

Reputation: 13

How can I check if the email and the data is valid or not

I got requests and I want to validate the data Here is the data I want to check

const RouterUser= require("express").Router(); const user = require('../module/UsersSchema');

RouterUser.post('/register',async (req,res)=>{

//Test Validtion data


//Get Data From Clinet Side
const data = new user({
    name:req.body.name,
    email:req.body.email,
    password:req.body.password
});
//Send Data To Api
try{
    const {_id} = await data.save();
    const token = jwt.sign({_id_user:_id},process.env.tokenPass);
    res.header('uath-token',token).send(token);
}
catch(err){
    res.status(400).json({
        message:"Fuild",
        error:err
    })
}

})

here my schema const UserSchema = new mongoose.Schema({ name:{ type:String, require, min:6, max:250 }, email:{ type:String, require, min:6, max:250, }, password:{ type:String, require, min:6, max:1100 } });

const User = mongoose.model("User",UserSchema);

module.exports = Userenter code here

Upvotes: 1

Views: 69

Answers (1)

Hicham Mounadi
Hicham Mounadi

Reputation: 469

you can check by adding the package Validator

npm install validator

    const validator = require('validator')
    
      email: {
        type: String,
        unique: true,
        required: [true, 'Please provide an email'],
        validate: {
            validator: validator.isEmail,
            message: 'Please provide a valid email address'
        },
      }

Or using Regex

email: {
    type: String,
    required: [true, 'Please provide an email'],
    match: [
      /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
      'Please provide a valid email',
    ],
    unique: true,
  }

Upvotes: 0

Related Questions