V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aaronlam
V2EX  ›  职场话题

前端业务校验时的参数一般如何获取?

  •  
  •   aaronlam · 2018-01-16 23:40:59 +08:00 · 2095 次点击
    这是一个创建于 2284 天前的主题,其中的信息可能已经有所发展或是发生改变。
    后端业务校验时校验参数很好获取,
    如:校验用户名长度最长为 "255" 位时,"255" 可保存在数据库参数表里,校验时再取出。

    那前端也要做相同校验时,大家一般是怎么处理这个 "255" 参数的?
    1.写死在 JS 校验逻辑里?
    2.校验时通过后端 API 获取?
    3.还是有其他方法?

    求最佳实践,感谢!
    第 1 条附言  ·  2018-01-17 01:22:20 +08:00
    这里的前端指的是 APP 或者 Web Page,不单止是 Web Page :)
    8 条回复    2018-01-17 17:05:27 +08:00
    oonnnoo
        1
    oonnnoo  
       2018-01-17 00:40:16 +08:00 via Android
    写死在前端吧,写好了一般都不会变了
    WittBulter
        2
    WittBulter  
       2018-01-17 00:54:36 +08:00 via iPhone
    比较小的服务就直接写死,稍大一点前端做一个配置系统,热更新配置。如果改的频繁就需要后端根据每个资源给一个资源的规则接口…
    当然,这种东西改来改去基本都是产品在拍脑袋☹️
    kyuuseiryuu
        3
    kyuuseiryuu  
       2018-01-17 00:59:01 +08:00 via iPhone
    如果支持用户配置自定义校验规则就写数据库里交给后端做校验,如果不支持就写死前端做校验,后端可以写死也可以读配置去做校验,但是如果再去读配置去做校验的话会出现前后端校验结果不一致的情况,这对用户来说就很迷了。
    aaronlam
        4
    aaronlam  
    OP
       2018-01-17 01:17:51 +08:00
    @oonnnoo
    感谢回复!
    我举得用户名长度例子可能不太恰当,还不够偏业务。
    实际上有些偏业务类的校验参数,可能会经常变动的就很蛋疼了,如果写死就需要两边都要修改。
    aaronlam
        5
    aaronlam  
    OP
       2018-01-17 01:29:12 +08:00
    @kyuuseiryuu
    感谢回复!
    就是需求经常变更的校验就仅后端校验,不经常或不会变更的前后端都写死对吗?
    感觉如果两边写死的话仅后端去读配置感觉就有点奇怪 0.0
    aaronlam
        6
    aaronlam  
    OP
       2018-01-17 01:32:21 +08:00
    @WittBulter
    感谢回复!
    我目前的想法也是在每次进入”前端“( APP 或 Web Page )时就根据后端提供的 API 获取校验参数,
    但是不知道有没有更好的最佳实践。
    iyaozhen
        7
    iyaozhen  
       2018-01-17 02:36:29 +08:00 via Android
    后端回传正则
    599316527
        8
    599316527  
       2018-01-17 17:05:27 +08:00
    1. 制定一份表单校验规则的规范
    2. 前后端各自实现基于这个规范的校验逻辑
    3. 给每个表单写一份校验规则
    4. 数据+校验规则 得到校验结果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3810 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:18 · PVG 18:18 · LAX 03:18 · JFK 06:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.