2011-11-25 20 views
18

¿Cuáles son mis opciones para usar el mismo código JavaScript para validar tanto en el lado del cliente como en el lado del servidor (Node.js)?Validación JavaScript que funciona tanto en el cliente como en el servidor Node.js?

+1

Terminé escribiendo mi propia validación. Básicamente tengo un modelo, p. Persona que tiene validación en eso. Este modelo de persona existe tanto en el cliente como en el servidor. Cuando un usuario introduce detalles en mi FORMULARIO, llenó el objeto Persona y lo validó, dando retroalimentación a campos incorrectos. Una vez que se devuelve el formulario al servidor, vuelvo a llenar el objeto Persona y vuelva a validar con los valores recibidos del cliente. Si hay un error, simplemente lo envío de vuelta al cliente. De esta forma puedo volver a utilizar el mismo modelo tanto en el cliente como en el servidor, ejecutar pruebas unitarias y mostrar errores con jquery. –

Respuesta

-14

Ninguna, está validando criterios totalmente diferentes en el lado del servidor. La validación del lado del cliente es solo un criterio de aceptación del usuario y no tiene nada que ver con la seguridad. Validación del lado del servidor casi exclusivamente relacionada con la seguridad.

+10

No estoy de acuerdo. Ignorando XSS y otras inyecciones, aún quiero validar que un campo de formulario tiene una longitud de X caracteres y es un código postal. De lo contrario, no habría nada que me detenga al entrar en Firebug y cambiar los valores enviados al servidor. Y usar JavaScript tanto en el cliente como en el servidor significaría la reutilización del código. Sería tonto no hacerlo. –

+0

XSS y otras vulnerabilidades de inyección no se pueden ignorar, por lo que su punto es irrelevante. – austincheney

+0

Creo que su punto parece válido. Quiero verificar que un correo electrónico sea un correo electrónico tanto en el cliente como en el servidor sin escribir exactamente el mismo código en el mismo idioma dos veces. Consulte esta joya de rieles para ver un ejemplo: https://github.com/bcardarella/client_side_validations – rgbrgb

8

Eche un vistazo a revalidator. Se describe como "validador cross-browser/node.js utilizado por ingenioso y flatiron".

Cuestiones relacionadas