egg.js 中 validate 的最佳实践
发布于 6 年前 作者 littledu 5400 次浏览 来自 问答

想把所有规则都放一个文件里,但发现所有已定义的目录都是有相关功能的,总感觉放哪都不合适,最后直接在 app 同级目录下建了个 validate 目录里面创建一个文件来存放,如下:

exports.LOGIN = {
  name: {
    type: 'string',
    require: true,
    allowEmpty: false
  },
  password: {
    type: 'string',
    require: true,
    allowEmpty: false
  }
};

exports.ARTICLES = {
  name: {
    type: 'string',
    require: true,
    allowEmpty: false
  },
  password: {
    type: 'string',
    require: true,
    allowEmpty: false
  }
};

但这样子,这个文件改动并不会被监听,请问大家都是怎么搞的

7 回复

我直接放在对应的 controller 里面了,文件改动的话,应该想办法解决掉 require 的缓存实现热更新吧,我没试过,但是听说过

@mehunk 就是直接在对应的 controller 前面写是吧,暂时我也这样处理,用框架就是不想自己写太多开发过程的东西,所以热更新就不搞了。

@littledu 自动重启只需配置下 egg-development 的配置

@atian25 谢谢,看了下 egg-development 的配置,配了 watchDirs 可以了。

我都是封装 async-validator 来做校验

const data = await ctx.validate( 模型名/校验模型对象, ‘username, -loginIp, -password, email’ )

await ctx.model.User.create(user)

校验错误提示如何优雅的自定义中文或者国际化呢?

回到顶部