云图网
  • 业界资讯
  • 技术专区
    • 云计算
    • 人工智能
    • 信息安全
    • 大数据
    • 研发管理
    • 大前端
    • 开源
    • 智能运维
    • 编程笔记
    • WordPress
  • 企业战略规划
  • 下载专区
  • 江湖史
  • 随笔记录
登录 注册
投稿
  1. 云图网首页
  2. 技术专区
  3. 编程笔记

node.js 如何验证表单

2022年7月10日 02:26 • 编程笔记


# 表单验证

第一步
安装 npm i joi
安装 npm i @escook/express-joi
创建一个文件夹名为schema文件名为user.js
里面引入 const joi = require('joi')
验证的几个api
* string() 值必须是字符串
* alphanum() 值只能是包含 a-zA-Z0-9 的字符串
* min(length) 最小长度
* max(length) 最大长度
* required() 值是必填项,不能为 undefined
* pattern(正则表达式) 值必须符合正则表达式的规则

用户名的验证规则
const username = joi.string().alphanum().min(1).max(10).required()
密码的验证规则
const password = joi.string().pattern(/^[/S]{6,12}$/).required()

// 注册和登录表单的验证规则对象
exports.reg_login_schema = {
// 表示需要对 req.body 中的数据进行验证
body: {
username,
password,
},
query:{

},
params:{

}
}

 

第二步
在第一个路由中导入验证的中间件
// 1. 导入验证表单数据的中间件
const expressJoi = require('@escook/express-joi')
// 2. 导入需要的验证规则对象
const { reg_login_schema } = require('../schema/user')
3.在接口中间加上 expressJoi(reg_login_schema)
router.post('/reguser',expressJoi(reg_login_schema),userHandler.regUser)

 

第三步
最后在app.js中写报错中间件
app.use(function (err, req, res, next) {
// 数据验证失败
if (err instanceof joi.ValidationError) return res.cc(err)
// 未知错误
res.cc(err)
})

原创文章,作者:wdmbts,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/273215.html

constJSloginNoderegschema表单验证
赞 (0)
0 0
生成海报
[C++]用类模板实现链表类
上一篇 2022年7月10日 02:26
JS/TS算法---状态压缩
下一篇 2022年7月10日 02:26

相关推荐

  • npm run build 内存溢出处理办法 2022年8月27日
  • JavaScript-代码嵌入HTML三种方式 2022年7月9日
  • 修复map文件泄露的漏洞 2022年7月13日
  • django路由层 2022年8月15日
  • 如何在JavaScript中使用高阶函数 2022年12月1日
  • node模块化 2022年7月9日
  • 递归 解决 Cascader 子数据回显 2022年7月26日
  • 【C++】关键字合集 2022年9月12日
  • 14 JavaScript js的编译 2022年8月5日
  • grafana+prometheus+node-exporter监控搭建与配置 2022年8月6日

发表回复

请登录后评论...
登录后才能评论

热门标签

AI (11871) aliyun (95062) Android (10391) c (14593) go (7786) google (20654) html (8304) https (10802) iPhone (21436) jd (7444) linux (18686) MD (8346) microsoft (7561) Phone (21786) python (7226) windows (18482) 人工智能 (9889) 安全 (28526) 开源 (16950) 微软 (13275) 手机 (21138) 游戏 (13254) 百度 (7189) 硬件 (14378) 美国 (20456) 苹果 (10017) 观察 (7533) 谷歌 (8726) 车 (28069) 通信 (7496)
  • 欢迎投稿
  • 隐私政策
  • 使用协议
  • 服务条款
  • 版权声明

Copyright © 2006-2025 YTSO.COM 版权所有 鲁ICP备15002310号-3 Powered by WordPress

免责声明:本站信息来自互联网收集分享,版权归原创者所有,如果侵犯了您的权益,请发邮件给39941211@qq.com通知我们删除.