Bummer! You have been redirected as the page you requested could not be found.
Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
You have completed Sequelize Model Validation!
You have completed Sequelize Model Validation!
Preview
Sequelize offers several built-in validators that allow you to specify validations for each attribute of the model, as well as custom error messages.
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
We're getting the sequelized validation
error messages back from Sequelize.
0:00
And this response, we're seeing
the default error messages provided for
0:04
each validation error item.
0:09
Let's instead display clear and
more useful custom error messages.
0:11
Sequalize offers several built-in
validators that allow you to specify
0:16
validations for each attribute of the
model as well as custom error messages.
0:20
To begin using them, add a validate object
inside a models attribute object like so.
0:25
The notNull validator allows you to
customize the allowNull false error
0:34
message.
0:39
Inside this new object,
I'll add the message property and
0:40
set it to my custom error message.
0:44
A name is required.
0:47
I'll add a similar custom
error message for email.
0:53
And birthday, and password.
1:10
I'll test these updates over in
Postman by once again sending a POST
1:25
request with an empty object.
1:29
Now the custom error messages
display in the response body.
1:33
Keep in mind that the notNull validator is
1:37
only allowed with
allowingNull set to false.
1:43
So when using notNull,
1:46
you must also specify allowNull false
in the model attribute's object.
1:48
Since the name, email and
password values are string data types and
1:55
birthday is date only, we're currently
able to set their value to an empty or
1:59
blank string and
it will be successfully validated.
2:04
Which means that the user's name, email or
2:07
even password would be
missing from the data.
2:10
So next I'll use the notEmpty
validator to ensure that users cannot
2:13
create a new account if they
submit empty values or fields.
2:18
Starting with the name attribute,
I'll set a custom error message when
2:23
validation fails by setting notEmpty
to an object containing a message
2:28
property set to the custom message,
Please provide a name.
2:33
I'll do the same for birthday.
2:43
Then password.
2:51
For the email attribute,
3:04
I'll use the isEmail validator
to check the email format.
3:06
If the submitted email format is not for
3:11
example, user@website.com Sequelize
will throw a validation error.
3:14
I'll add the message property to
display a custom error message,
3:19
Please provide a valid email address.
3:23
All right now I'm ready to
test my updates in Postman.
3:30
First, I'll test the post
request by setting the name,
3:34
birthday and password values in
the body to an empty string.
3:37
Then set the email value to
an invalid format, like guil.com.
3:41
Click Send and
receive a 400 Bad Request status.
3:49
Notice the errors arrays and the response
containing the custom error messages.
3:53
Next, I'll set each
property to a valid value.
4:00
Click Send and
now I receive a 201 Created status,
4:06
which means that the user entry
was successfully created and
4:10
stored in the database as you
see here in the response.
4:14
Finally I'll send a get request
to the API users route.
4:17
Remember that this route
here in routes.js,
4:22
the handler calls User.findAll to retrieve
all entries from the user's table.
4:26
I receive a 200 OK status.
4:34
And in the response body,
I see an array with the new user object.
4:37
It has an id of 1, along with
the createdAt and updatedAt timestamps.
4:41
Sequelize adds to every model by default.
4:47
Good.
4:50
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up