User And UserDetail model

PHOTO EMBED

Mon May 20 2024 10:55:25 GMT+0000 (Coordinated Universal Time)

Saved by @sid_balar

const mongoose = require('mongoose');

function validateEmail(email) {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    return emailRegex.test(email);
  }

const userModel = new mongoose.Schema({
    email:{
        type:String,
        require: true,
        unique: true,
        validate: {
            validator: validateEmail,
            message: 'Invalid email format',
        },
    },
    password:{
        type:String,
        require: true
    },
},
{
    timestamps: true
}
);

const userDataModel = mongoose.model('user', userModel);

module.exports = userDataModel;




const mongoose = require('mongoose');

const DetailModel = new mongoose.Schema({

    user_id:{
        type: mongoose.Schema.Types.ObjectId,
        ref:'user',
        required: true,
    },
    name:{
        type:String,
        require: true,
        validate: {
            validator: function(value) {
              const regex = /^[a-zA-Z]+$/;
              return regex.test(value);
            },
            message: 'Invalid characters in the name field. Only alphabets are allowed.'
          }
    },
    phone:{
        type:Number,
        require: true
    },
    country:{
        type:String,
        enum: ['USA', 'Canada', 'UK', 'Australia', 'India', 'Other'],
        require: true
    },
    additional_info:{
        type:String,
        require: true,
        validate: {
            validator: function(value) {
              const regex = /^[a-zA-Z0-9.,@_]+$/;
              return regex.test(value);
            },
            message: 'Invalid characters in additional_info field.'
          }
    },
    file:{
        type:String,
        required: true
    }
},
{
    timestamps: true
}
);

const userDetailModel = mongoose.model('userDetail', DetailModel);

module.exports = userDetailModel;




content_copyCOPY