【发布时间】:2015-11-11 10:31:23
【问题描述】:
我们有一个标准的 Web 应用程序,前端使用 Angular,后端是用 Java 7 编写的。我注意到,我们得到了很多重复的代码。也就是说,验证是通过 Angular 在客户端执行的,但我不能完全信任他,因为用户可以禁用客户端验证,只需向服务器提交一个 post 查询。
因此,我必须在 Java 的服务器端重复相同的验证逻辑。这很乏味,但我不知道如何避免这种情况。也许我可以用javascript框架(假设它是Node.js)编写后端的某些部分,它可以使用与前端相同的验证库,并使Java后端与node.js交互?解决此问题的最佳方法是什么?
【问题讨论】:
-
这意味着你有 2 个后端?有没有想过微服务之类的东西?
-
不确定。也许Java可以以某种方式使用javascript库来执行验证?也许您可以根据后端验证代码生成 javascript 验证代码,反之亦然?
-
Java 与 Javascript 无关,真的。只在前端做最少的检查(基本类型/长度验证),在后端做数据库检查和更深入的检查。
-
我同意 Andrius,所有的验证都必须在服务器端进行,除了一些基本的事情
-
@Andrius,从技术角度完全同意 - 在后端编写所有验证代码更便宜,但由于前端验证,您可以为用户提供更无缝的 UX。因此需要共享逻辑是合理的。
标签: java angularjs node.js validation