celebrate
celebrate copied to clipboard
Nested schema error
-
node
version - 18 -
celebrate
version - 15.0.3 -
joi
version (vianpm ls --depth=0 | grep joi
) -17
My joi
schema looks like this:
export const fetchUsersValidation = { [Segments.QUERY]: Joi.object<QueryOptions>().keys({ sort: Joi.array().items(Joi.string().allow(null)).valid('firstname', 'lastname', 'createdAt', '-firstname', '-lastname', '-createdAt'), // Allow null values for optional sorting filters: Joi.object().valid({ type: Joi.number().valid(UserType), // Validate allowed types role: Joi.number() // Validate allowed roles }), pagination: Joi.object({ page: Joi.number().integer().positive().default(1), // Ensure positive integer, default to 1 pageSize: Joi.number().integer().min(1).max(100).default(15) // Set limits and default }) }) };
Here is an example value that is not working as expected:
{{base_url}}/api/users/?filters[type]=1
The issue I am having with celebrate
is:
"message": ""filters" must be [[object Object]]; ",
*I create the error handler like this:
app.use((err: any, _req: Request, res: Response, _next: NextFunction) => { if (isCelebrateError(err)) { let message = ''; for (const value of err.details.values()) { message += value.message + '; '; } logger.error('🔥 error %o', message); res.status(httpStatus.BAD_REQUEST).json(resultError(message)); } })
but i have error for the nested joi schema. I think i do it in the wrong way.
*