• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

527
Views
Cómo validar si el parámetro del cuerpo en la cadena Express Nodejs se puede convertir a JSON usando express-validation y joi

Estoy creando una función que acepta una solicitud de publicación. La solicitud de publicación también contiene un objeto JSON convertido en una cadena. En el backend, necesito validar si esta cadena se puede analizar en JSON y solo luego continuar. Existe la función de enrutamiento:

 var express = require('express'); var validate = require('express-validator'); var hotelController = require('../controllers/hotel-controller'); var hotelValidation = require('../validations/hotel-validation'); var router = express.Router(); router.route('/create') .post(validate(hotelValidation.createHotel), hotelController.create);

Aquí está el objeto de validación:

 var Joi = require('joi'); module.exports = { createHotel: { body: { //NEED TO CHECK IF THE BELOW FIELD //CAN BE CONVERTED TO JSON FROM STRING data: Joi.string().required() } } };
over 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Como se comentó en la pregunta, Joi.object() seguirá funcionando con una cadena JSON , Joi.array() también funciona.

Está documentado en la API.

Genera un objeto de esquema que coincide con un tipo de datos de objeto (así como cadenas JSON que se analizan en objetos).

Por ejemplo, dado el esquema:

 Joi.object().keys({ body: Joi.object().keys({ data: Joi.object(), array: Joi.array() }) })

Una carga útil válida puede ser:

 { body: { data: '{"json": true, "foo": "bar"}', array: '[1, 2, 3, "hello", 4, "world"]' } }

El ejemplo anterior se puede demostrar aquí , simplemente pegue el esquema y los datos del ejemplo.

over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error