¿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?
Respuesta
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.
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. –
XSS y otras vulnerabilidades de inyección no se pueden ignorar, por lo que su punto es irrelevante. – austincheney
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
Eche un vistazo a revalidator. Se describe como "validador cross-browser/node.js utilizado por ingenioso y flatiron".
- 1. Node.js con Handlebars.js en el servidor y el cliente
- 2. ¿Cómo usar las reglas de validación tanto del lado del cliente como del lado del servidor?
- 3. node.js - necesito ayuda para elegir un motor de plantillas válido tanto para el cliente como para el servidor con
- 4. Socket.io como servidor, javascript 'estándar' como cliente?
- 5. ¿Es posible cerrar los sockets de Java tanto en el lado del cliente como del servidor?
- 6. Validación de datos del lado del servidor en Express + node.js
- 7. Eventos enviados por el servidor en Node.JS
- 8. ¿Tiene sentido construir aplicaciones web puras basadas en JavaScript (tanto del lado del cliente como del servidor)?
- 9. ¿Impide que el cliente sobrecargue el servidor?
- 10. Cliente Node.js para un servidor socket.io
- 11. ZeroMQ en el cliente javascript
- 12. Node.js: para cada ... en que no funciona
- 13. El servidor arroja una excepción, el cliente malinterpreta como éxito
- 14. ¿Cómo se evita la duplicación de validación en el servidor y el lado del cliente?
- 15. cómo obtener información sobre el cliente en Node.js
- 16. Cliente OAuth2 que funciona en App Engine
- 17. Ordenando en el servidor o en el cliente?
- 18. ¿Cómo incluyo archivos javascript en el servidor?
- 19. Módulo común en node.js y el navegador javascript
- 20. ¿Hay algo como Solr o Elasticsearch que solo se pueda usar en el cliente en Javascript?
- 21. Manejo de WinRT StreamSocket se desconecta (tanto del lado del servidor como del cliente)
- 22. Mercurial sobre el cliente y el servidor SSH en Windows
- 23. MVC3 Validación del lado del cliente no funciona
- 24. ¿Es posible configurar un cliente socket.io en ejecución (lado del servidor) en un servidor node.js?
- 25. box-shadow tanto en el interior como en el exterior en el mismo div
- 26. node.js + socket.io transmitido desde el servidor, en lugar de desde un cliente específico?
- 27. ¿Hay un intérprete javascript en el servidor, como php?
- 28. JavaScript en el lado del servidor como PHP
- 29. El cliente envía el ACUSE FINAL retrasado (~ 500ms) al servidor
- 30. CSS en el lado del servidor?
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. –