Skip to content

Instantly share code, notes, and snippets.

@alihesari alihesari/app.js forked from stongo/app.js
Created Aug 31, 2018

What would you like to do?
Joi validation in a Mongoose model
var mongoose = require('mongoose');
var db = mongoose.connection;
db.on('error', function() {
return console.error.bind(console, 'connection error: ');
db.once('open', function() {
var User;
return User = require('./user.js');
// Validate a user
(function() {
var User = require('./user.js');
var me = { username: 'foo' };
var user = new User(me);
var err = user.joiValidate(me);
if (err) throw err;, saved) {
var userSchema = mongoose.Schema({
username: String,
password: String,
email: String,
first_name: String,
last_name: String,
created: { type: Date, default: },
userSchema.methods.joiValidate = function(obj) {
var Joi = require('joi');
var schema = {
username: Joi.types.String().min(6).max(30).required(),
password: Joi.types.String().min(8).max(30).regex(/[a-zA-Z0-9]{3,30}/).required(),
email: Joi.types.String().email().required(),
first_name: Joi.types.String().required(),
last_name: Joi.types.String().required(),
created: Joi.types.Date(),
return Joi.validate(obj, schema);
module.exports = mongoose.model('User', userSchema);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.