express-validator
path: courses/express-node/express-validator.md
- **fileName**: express-validator
- **Created on**: 2024-06-29 05:07:39
installation :
npm install express-validator
express validator is package for validator the data from server before go to the logic for the endpoint example :
import express from 'express';
import { body, validationResult } from 'express-validator';
const app = express();
app.get('/hello', body('username').notEmpty().isString(), (req, res) => {
const result = validationResult(req);
if (!result.isEmpty()) {
res.send({ errors: result.array() });
}
return res.send(`Hello`);
});
app.listen(3000);
better way for validator using checkScheme() bulit in function:
export const vaildatorSign = {
username: {
isLength: {
options: {
min: 3,
max: 30,
},
errorMessage: "not vaild username info",
},
notEmpty: {
errorMessage: "username is required"
},
isString: {
errorMessage: "username must be string"
},
unique: {
errorMessage: "username must be unique"
},
},
};
import express from 'express';
import { validationResult, checkSchema } from 'express-validator';
const app = express();
import { validatorSign } from 'validator.mjs'
app.get('/hello',checkSchema(vaildatorSign), (req, res) => {
const result = validationResult(req);
if (!result.isEmpty()) {
res.send({ errors: result.array() });
}
return res.send(`Hello`);
});
app.listen(3000);
app.post("/api/auth", body("username")
.notEmpty().withMessage("the username is empty not valid")
.isString({ maxAge: { min: 3, max: 30 } })
.withMessage("not valid username its must be between 3 and 30 characther"),
body("password").notEmpty().withMessage("the password is empty not valid")
, (request, response) => {
const resutls = validationResult(request)
console.log(resutls);
const { body: { username, password } } = request;
if (!resutls.isEmpty()) return response.status(400).send({ erorr: "error in username or password" });
const findUser = infoUser.find((user) => user.username === username && user.password === password);
if (!findUser) return response.status(401).send("error in username or password");
request.session.user = findUser;
// restore the data from post request in data
const data = matchedData(request);
console.log(data)
response.status(200).send({ msg: "welcome in our app", findUser });
})
continue:db-session.md
before:dotfiles.md