Next.js template
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

person.js 727B

123456789101112131415161718192021222324252627282930313233
  1. const mongoose = require('mongoose');
  2. const PersonSchema = new mongoose.Schema({
  3. name: {
  4. type: String,
  5. required: [true, 'Please provide a name.'],
  6. maxlength: [60, 'Name cannot be more than 60 characters'],
  7. trim: true,
  8. },
  9. age: {
  10. type: Number,
  11. required: [true, 'Please provide an age.'],
  12. validate(value) {
  13. if (value < 0) {
  14. throw new Error('Age must be a postive number');
  15. }
  16. },
  17. },
  18. gender: {
  19. type: String,
  20. required: [true, 'Please provide a gender.'],
  21. trim: true,
  22. },
  23. customID: {
  24. type: String,
  25. required: true,
  26. unique: true,
  27. },
  28. });
  29. const Person = mongoose.models.Person || mongoose.model('Person', PersonSchema);
  30. module.exports = Person;