我正在处理我的第一个 Node.js 项目,但我偶然发现了一个问题。我正在使用node-validator进行输入验证,并将Sequelize作为 ORM。
异步验证的问题
我正在尝试编写一些自定义验证来查看给定的用户名是否仍然可用。唯一的问题是:Sequelize 中的查找器是异步的,而 node-validator 没有对异步验证的内置支持。
我尝试过的两种方法
- 使用此处描述的回调
- 使用 Sequelize 的内置验证
我对上述两种方法都不满意。使用回调会很快变得混乱,如果我使用 Sequelize 的内置验证,还会出现其他问题。
显然,没有办法在 Sequelize 中同步使用查找器,这将是我的首选解决方案。
现在怎么办?
我有什么选择以干净的方式解决这个问题?理想情况下,我希望我的验证过程看起来像这样:
req.sanitize('username').trim();
req.check('username', 'Your username must be between 4 and 32 characters long').len(4, 32);
req.check('username', 'That username is already taken').usernameIsAvailable();
如何干净利落地实现异步验证?谢谢您的帮助!