0
0
Expressframework~30 mins

Schema validation in Express - Mini Project: Build & Apply

Choose your learning style9 modes available
Schema validation in Express
📖 Scenario: You are building a simple Express server that accepts user data via a POST request. To keep your server safe and reliable, you want to check that the data sent by users matches the expected format before processing it.
🎯 Goal: Build an Express server that validates incoming JSON data against a schema using a middleware function. The server should only accept requests where the data matches the schema.
📋 What You'll Learn
Create an Express app with a POST route at /users
Define a schema object that requires name as a string and age as a number
Write a middleware function called validateUser that checks the request body against the schema
Use the validateUser middleware in the /users route to accept only valid data
💡 Why This Matters
🌍 Real World
Validating user input on a server is essential to prevent errors and security issues. This project shows how to do basic validation in Express before processing data.
💼 Career
Backend developers often write validation middleware to ensure APIs receive correct data. This skill is fundamental for building reliable and secure web services.
Progress0 / 4 steps
1
Set up Express app and user schema
Create an Express app by requiring express and calling express(). Then create a constant called userSchema that is an object with keys name set to "string" and age set to "number".
Express
Need a hint?

Use require('express') to import Express and express() to create the app. Define userSchema as an object with the exact keys and string values.

2
Add JSON body parsing middleware
Add the Express middleware to parse JSON request bodies by calling app.use(express.json()).
Express
Need a hint?

Use app.use(express.json()) to enable JSON parsing for incoming requests.

3
Create the validateUser middleware function
Write a middleware function called validateUser that takes req, res, and next as parameters. Inside, check that req.body.name is a string and req.body.age is a number. If valid, call next(). Otherwise, respond with status 400 and JSON message { error: "Invalid user data" }.
Express
Need a hint?

Check the types of req.body.name and req.body.age using typeof. Call next() if valid, else send a 400 error response.

4
Add POST /users route with validation middleware
Add a POST route at /users using app.post. Use the validateUser middleware for this route. In the route handler, respond with JSON { message: "User data is valid" }.
Express
Need a hint?

Use app.post with the path '/users', add validateUser as middleware, and send a JSON success message in the handler.