UNPKG

create-nodeapi-backend

Version:

A powerful Node.js backend boilerplate with Express, MongoDB, Firebase, JWT auth, Nodemailer, cron jobs, input validation (Joi), and serverless support for Vercel. Scaffold a full-featured API backend in seconds.

23 lines (18 loc) 643 B
const Joi = require("joi"); const pick = require("../utils/pick"); const validate = (schema) => (req, res, next) => { const validSchema = pick(schema, ["params", "query", "body"]); const object = pick(req, Object.keys(validSchema)); const { value, error } = Joi.compile(validSchema) .prefs({ errors: { label: "key" }, abortEarly: false }) .validate(object); if (error) { const errorMessage = error.details .map((details) => details.message) .join(", "); return res.status(400).send({ errorMessage }); } Object.assign(req, value); return next(); }; module.exports = validate;