====== 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|→]]