前端要在输入错误时做实时提示(可能得有本地逻辑),后端要保证数据合法
需求可能不同,但活确实是差不多的
有没有比较好的方法来做这个事?
|  |      1seki      2016-09-20 00:34:26 +08:00 用框架和模板 | 
|      2linuxchild      2016-09-20 00:53:05 +08:00 via iPhone 没有吧 后端不能相信前端传来的数据… | 
|      3sylecn      2016-09-20 00:57:45 +08:00 via Android 如果是浏览器客户端,前端必须支持编译到 JavaScript 才能在浏览器执行, 所以能够做到的语言不多。我知道的能在生产环境用的只有 JavaScript 和非常相关的替代比如 coffee script 和 typescript ,以及 clojurescript. 如果前端是 app 或者桌面应用,可以前后端用同一种语言开发。这样就可以用共享库 /模块的方式 share 代码。只要把校验这部分代码分割出来成为独立模块就好。 问问题的时候还是多给些上下文比较好。核心思路都是在前端和后端用同一种语言。当初 node.js 兴起的时候,这个是一大卖点。 | 
|      4think2011      2016-09-20 01:04:23 +08:00 后端传验证规则给前端。 这是本来打算做的做法,后来因为某些原因搁浅了。 | 
|  |      5EthanZ      2016-09-20 02:40:42 +08:00  12 validations on FE are for stupid users, validations on BE are for malicious users. | 
|  |      6ChiangDi      2016-09-20 07:06:27 +08:00 via Android 都用 JavaScript | 
|  |      7hjc4869      2016-09-20 07:55:04 +08:00 via iPhone 后端传一个正则和一个提示文本给前端。 | 
|      8maxlvlvlv      2016-09-20 07:55:42 +08:00 via iPad Middleware | 
|  |      9ersic      2016-09-20 08:01:31 +08:00  19 我觉得前端验证是为了提高用户体验,后端验证是为了系统的安全性,功能性是不同的。 | 
|  |      10huntererer      2016-09-20 08:04:03 +08:00 字数什么的验证可以放前端,用户体验好,但是"真正"的验证一定要放后端校验。 | 
|  |      11ChefIsAwesome      2016-09-20 08:25:33 +08:00 活差多了好吧。除了个正则一样,其他都不一样。 | 
|  |      12int64ago      2016-09-20 08:42:24 +08:00 前后端都是 JS 的话,就共用一套实现就好了 | 
|      13myweishanli      2016-09-20 08:43:31 +08:00 可以参考 yii2 后端配置好规则,前端自动生成对应的验证代码,后端也是根据规则验证。 | 
|      14sundev      2016-09-20 08:54:58 +08:00 这的确是个问题,因为随着前端规模的增大,验证已经不局限于一个正则了,而是复杂的逻辑,那么必然导致前端后端出现重复的逻辑。我做的一个项目也出现这个问题,正在寻找方法。 我们目前的做法是简单验证由自定义好的规则,后端前端自动生成部分验证逻辑,但是碰到复杂逻辑是后端前端各写一份代码。 | 
|  |      15sunjourney      2016-09-20 08:56:01 +08:00  1 前端验证只是保证用户体验的,想省功夫就用 ajax 后端实时验证咯 | 
|  |      16lwbjing      2016-09-20 09:31:10 +08:00 那就,,前端就不要做了,后端去提示,,哈哈。。 | 
|  |      174641585      2016-09-20 09:32:52 +08:00 这是谈到 Node.js 有什么优势时的一个典型场景。 | 
|  |      18cosgbgas      2016-09-20 09:38:48 +08:00 这的确是个问题。 | 
|  |      197sDream      2016-09-20 09:42:48 +08:00  1 貌似用 Django + django-angular 可以做到写一遍验证,前后端通用。 还有我之前准备报名 GSoC 的时候写的一个 proposal ,是准备给 Django 增加通用的客户端验证组件: https://gist.github.com/7sDream/46de98da073b9021c5d0 发到 Google Group 之后貌似大家也挺支持的。 但是准备报名的时候我家出了点事,然后 proposal 就没写完…… 后来我补完了,但是也没机会参加了 =,= 不过思路应该还可以? | 
|  |      20qhxin      2016-09-20 10:04:54 +08:00 除非打造可信前端、终端、信道。然而这样成本比做两次验证还大。而且现有环境下前端验证和后端验证的性质是不一样的,不能混为一谈。 | 
|  |      21Karblue      2016-09-20 10:08:44 +08:00 又想用户体验好。又想省事。让我和为难啊(:doge | 
|  |      22zikkeung      2016-09-20 10:13:18 +08:00 typescript 可破 | 
|  |      23guyskk      2016-09-20 10:28:44 +08:00 via Android 校验规则理论上是可以前后端通用的,但 JS 版还没实现。根据后端 API 自动生成 JS 代码,发出请求之前自动校验数据,不通过就直接生成一个 400 响应。 https://github.com/guyskk/validater 有打算实现 JS 版的联系我吧,有问题也可以提 issue 。 | 
|      24baby4free      2016-09-20 10:32:11 +08:00 理论上是可以后端校验就行了 跟前端约定好错误码及错误消息体 前端可以根据返回的错误做对应的展示 不过为了用户体验 前端还是做一下比较好 | 
|  |      25BruceLi      2016-09-20 10:34:55 +08:00 都要验证,不过前端是为了提升用户体验,后端是为了业务逻辑的完整和数据安全,侧重点不同,验证的方法也不完全一样,如果前后端可以分享代码,把验证的逻辑单独变成一个库应该能节省一些人力和时间。 | 
|  |      26tobeyouth      2016-09-20 13:35:45 +08:00 | 
|  |      27wizardforcel      2016-09-20 13:38:56 +08:00 找不同的人做,让人手 *2 。 | 
|      28sampeng      2016-09-20 17:58:26 +08:00 这本来就是一个体力活。。。 | 
|  |      29tanszhe      2016-09-20 18:06:22 +08:00 | 
|  |      30vghdjgh      2016-09-20 18:16:56 +08:00 楼上说的 json schema 是一个方式 不过只能验证是不是合法,前端体验不一定满足需求,所以常用于后台系统。 | 
|      31wxhm1120      2016-09-20 18:41:48 +08:00 再招个人-。- | 
|  |      32Nitroethane      2016-09-20 19:20:24 +08:00 话说这种事不是应该安全部门的人负责么 0.0 | 
|  |      33ibufu      2016-09-20 19:46:16 +08:00 前端别做了吧,反正后端会抛个错误过来 | 
|  |      34oyjc      2016-09-20 19:46:40 +08:00 服务端: C# (.net  浏览器: C# 使用 Bridge.net 编译到 Javascript ** 在不久的未来: 服务端: C# 浏览器: C# 编译到 Webassembly ,直接操作浏览器 DOM 等 Javascript 能访问到的 API. | 
|  |      35chemzqm      2016-09-20 21:28:51 +08:00 godmin railsadmin 只要在 model 层加上验证就可以了,谁用谁知道😀 | 
|  |      36alexapollo OP | 
|  |      377sDream      2016-09-20 21:58:48 +08:00 @alexapollo 我自己并没有用过 不过 Google Group 上的人回复我说这个写的不错。有个 form validation 的 Demo : http://django-angular.awesto.com/form_validation/ | 
|      38WalkingEraser      2016-09-20 22:46:51 +08:00 via Android 自己写个 parser 处理,/滑稽 | 
|  |      39FrankFang128      2016-09-20 22:49:42 +08:00 你们搞前后分离的,终于发现这个问题了? | 
|  |      40guyskk      2016-09-21 00:08:32 +08:00 via Android | 
|  |      41Felldeadbird      2016-09-21 00:23:15 +08:00 我的做法是,后端返回 JSON ,包含必要的信息。然后前端做提示就行了 :) 。绝对够懒。 | 
|  |      42qiyuey      2016-09-21 00:50:11 +08:00 via Android controller 层需要验证一遍, service 层需要验证一遍,怎么破? | 
|  |      43bdbai      2016-09-21 00:57:29 +08:00 via Android @FrankFang128 后端怎么实时校验? | 
|  |      44zongren      2016-09-21 10:36:38 +08:00 规则当然只制定一遍 而且可以用后端生成 js 代码 | 
|  |      45mysterin      2016-09-21 10:40:52 +08:00 前端:不要相信客户输入的数据 后端:不要相信前端传送的数据 引申: | 
|  |      46moyang      2016-09-21 10:43:19 +08:00 Node.js 后端,一个 lib 两边用 :P | 
|  |      47FrankFang128      2016-09-21 11:03:54 +08:00 via Android @guyskk 我说的是同一个逻辑 前后都要写  这个问题 | 
|  |      48xiongbiao      2016-09-21 12:14:02 +08:00 共用一套 json schema 嘛 |