====== Getting Started ======
express-validator is a set of [[http://expressjs.com/|express.js]] middlewares that wraps [[https://github.com/validatorjs/validator.js|validator.js]] validator and sanitizer functions.
===== Installation =====
Install it using npm (make sure that you have Node.js 8 or newer):
npm install --save express-validator
===== Basic guide =====
> It's recommended that you have basic knowledge of the express.js module before you go on with this guide.
Let's get started by writing a basic route to create a user in the database:
JavaScript
const express = require('express');
const app = express();
app.use(express.json());
app.post('/user', (req, res) => {
User.create({
username: req.body.username,
password: req.body.password,
}).then(user => res.json(user));});
TypeScript
import express from 'express';
const app = express();
app.use(express.json());
app.post('/user', (req: express.Request, res: express.Response) => {
User.create({
username: req.body.username,
password: req.body.password,
}).then(user => res.json(user));});
Then, you'll want to make sure that you validate the input and report any errors before creating the user:
JavaScript
// ...rest of the initial code omitted for simplicity.
const { body, validationResult } = require('express-validator');
app.post(
'/user',
// username must be an email
body('username').isEmail(),
// password must be at least 5 chars long
body('password').isLength({ min: 5 }), (req, res) => {
// Finds the validation errors in this request and wraps them in an object with handy functions
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
User.create({
username: req.body.username,
password: req.body.password,
}).then(user => res.json(user));
},
);
TypeScript
// ...rest of the initial code omitted for simplicity.
import { body, validationResult } from 'express-validator';
app.post(
'/user',
// username must be an email
body('username').isEmail(),
// password must be at least 5 chars long
body('password').isLength({ min: 5 }),
(req: express.Request, res: express.Response) => {
// Finds the validation errors in this request and wraps them in an object with handy functions
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
User.create({
username: req.body.username,
password: req.body.password,
}).then(user => res.json(user));
},
);
Voila! Now, whenever a request that includes invalid ''username'' or ''password'' fields is submitted, your server will respond like this:
{
"errors": [
{
"location": "body",
"msg": "Invalid value",
"param": "username"
}
]
}
For all the available validators in express-validator (just like its options), take a look at validator.js docs [[https://github.com/validatorjs/validator.js#validators|here]].
===== What's next =====
This completes the basic guide on getting started with express-validator.\\ You might want to continue reading about some of the more advanced features available:
* [[:docs:sanitization|Sanitization]]
* [[:docs:custom-validators-sanitizers|Custom validators/sanitizers]]
* [[:docs:custom-error-messages|Custom error messages]]
* [[:docs:wildcards|Wildcards]]
* [[:docs:schema-validation|Schema validation]]
[[:docs:sanitization|Sanitization]][[:docs:sanitization| ]][[:docs:sanitization|→]]