Request Handling & Validation
Accessing data from various parts of the request object.
handler: (request, h) => {
const query = request.query; // Query parameters
const params = request.params; // Route parameters
const payload = request.payload; // Request body
console.log('Query:', query);
console.log('Params:', params);
console.log('Payload:', payload);
return 'Data received!';
}
|
Using Joi for request payload validation.
const Joi = require('joi');
server.route({
method: 'POST',
path: '/user',
handler: (request, h) => {
return 'User created!';
},
options: {
validate: {
payload: Joi.object({
username: Joi.string().alphanum().min(3).max(30).required(),
password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),
email: Joi.string().email().required()
})
}
}
});
|
Explanation:
Joi.object({...}) : Defines the structure and validation rules for the payload.
username : Must be an alphanumeric string, between 3 and 30 characters, and is required.
password : Must be an alphanumeric string, between 3 and 30 characters, and is required.
email : Must be a valid email address and is required.
|
|
Validates query parameters.
|
params: Joi.object({...})
|
Validates route parameters.
|
|
Defines what happens when validation fails (e.g., ‘log’, ‘error’).
|