Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

129
Vistas
La publicación HTTP con el cuerpo de la solicitud falló al usar Regex para validar el parámetro del cuerpo

Estoy probando una API Express usando el método de publicación.

El cuerpo de la solicitud es como

 { "menuId": "id2-test", "menuName": "test menu name 2", "menuUrl": "/admin/menu/test", "desc": "this is test menu 2 description", "menuOrder": 2, "usageStatus": "true" }

Como puede ver, hay una propiedad menuUrl que es una ruta de una URL válida. Entonces, para asegurarse de que el usuario pueda ingresar el valor válido para todas las propiedades proporcionadas. He intentado validar el menuUrl usando Regex

 router.post( "/", validate(paramValidation.createMenu), async (req, res, next) => { const { userInfo } = req; const menu = new Menus({ menuUrl: req.body.menuUrl, ...req.body, }); // Regex validation is here if (!menu?.menuUrl.match(/^[az][a-z0-9+.-]*:/)) { return new ApiError("MENU_URL_NOT_VALID", httpStatus.BAD_REQUEST, true); } menu.createdBy = userInfo.userNm; await Menus.findOne({ menuId: menu.menuId }) .then((_menu) => { if (!_menu) { return menu.save(); } const err = new ApiError("ROLE_ALREADY", httpStatus.BAD_REQUEST, true); return Promise.reject(err); }) .then((_menu) => { res.status(httpStatus.CREATED).json(_menu); return null; }) .catch((e) => next(e)); } );

Sin embargo, cuando se realiza la solicitud, recibí el error que decía que could not get response . Si elimino el paso de validación Regex anterior, todo sigue funcionando bien. ¿Qué pasó con eso?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El patrón de expresiones regulares que parece querer aquí es algo como:

 ^/[az][a-z0-9+.-]*(?:/[az][a-z0-9+.-]*)*$

Código actualizado:

 if (!menu?.menuUrl.match(/^\/[az][a-z0-9+.-]*(?:\/[az][a-z0-9+.-]*)*$/)) { return new ApiError("MENU_URL_NOT_VALID", httpStatus.BAD_REQUEST, true); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda