Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
123
rated 0 times [  128] [ 5]  / answers: 1 / hits: 122387  / 9 Years ago, mon, july 27, 2015, 12:00:00

I'm trying to save a new document in mongodb with mongoose, but I am getting ValidationError: Path 'email' is required., Path 'passwordHash' is required., Path 'username' is required. even though I am supplying email, passwordHash and username.



Here is the user schema.



    var userSchema = new schema({
_id: Number,
username: { type: String, required: true, unique: true },
passwordHash: { type: String, required: true },
email: { type: String, required: true },
admin: Boolean,
createdAt: Date,
updatedAt: Date,
accountType: String
});


This is how I am creating and saving the user object.



    var newUser = new user({

/* We will set the username, email and password field to null because they will be set later. */
username: null,
passwordHash: null,
email: null,
admin: false

}, { _id: false });

/* Save the new user. */
newUser.save(function(err) {
if(err) {
console.log(Can't create new user: %s, err);

} else {
/* We succesfully saved the new user, so let's send back the user id. */

}
});


So why does mongoose return a validation error, can I not use null as temporary value?


More From » node.js

 Answers
29

In response to your last comment.



You are correct that null is a value type, but null types are a way of telling the interpreter that it has no value. therefore, you must set the values to any non-null value or you get the error. in your case set those values to empty Strings. i.e.



var newUser = new user({

/* We will set the username, email and password field to null because they will be set later. */
username: '',
passwordHash: '',
email: '',
admin: false

}, { _id: false });

[#65653] Saturday, July 25, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
keyonnal

Total Points: 746
Total Questions: 103
Total Answers: 116

Location: Moldova
Member since Sat, Aug 6, 2022
2 Years ago
;