做后端开发或者写接口的时候,最怕什么?不是逻辑复杂,而是前端传过来的数据乱七八糟。手机号写成中文、邮箱格式不对、必填字段为空……这些问题不处理,后面出错能让你查到半夜。
为什么不用重量级框架?
很多人一上来就引入 Hibernate Validator 或者整个 Spring Validation 模块,功能是强,但项目小的话显得太重了。尤其是写个脚本、做个微服务中间层,或者封装一个工具函数时,根本不想搭一整套配置去搞注解校验。
轻量级参数校验库的用武之地
这时候,一个轻量、无依赖、API 简洁的参数校验库就特别实用。比如 just-validate 或 validator.js 这类工具,不绑定任何框架,拿来就能用。
举个例子,你接了个用户注册请求,想快速检查一下字段:
const validator = require('validator');
function validateUser(data) {
if (!data.name || data.name.trim().length === 0) {
return { valid: false, message: '姓名不能为空' };
}
if (!validator.isEmail(data.email)) {
return { valid: false, message: '邮箱格式不正确' };
}
if (!validator.isMobilePhone(data.phone, 'zh-CN')) {
return { valid: false, message: '请输入正确的中国大陆手机号' };
}
return { valid: true };
}
就这么几行代码,把常见问题都拦住了。不需要加注解、不用配 Bean Validation,也不用动辄引入十几个依赖。
适合这些场景
你在写 Node.js 工具脚本、Koa/Express 小项目、CLI 命令行程序,甚至前端表单二次校验时,这种轻量库都能快速集成。体积小,gzip 后可能才几 KB,对打包影响几乎为零。
有些库还支持自定义规则,比如判断身份证号、密码强度、是否包含敏感词等,扩展起来也方便。
选型建议
挑这类库主要看三点:文档清不清楚、有没有长期维护、是否支持常用规则。像 validator.js 这种 GitHub 上几万 star 的,社区反馈多,遇到问题也好找答案。
别小看一次简单的非空判断,提前用轻量校验库把关,能省下不少线上 debug 的时间。就跟出门前检查钥匙带没带一样,小事做在前,麻烦少一半。