云图网
  • 业界资讯
  • 技术专区
    • 云计算
    • 人工智能
    • 信息安全
    • 大数据
    • 架构设计
    • 研发管理
    • 物联网
    • 数据库
    • 区块链
    • 大前端
    • 开源
    • 移动开发
    • Java
    • linux专区
    • PHP
    • python
    • 智能运维
    • 编程笔记
    • 编程教程
    • WordPress
  • AIGC
  • 企业战略规划
  • 下载专区
  • 江湖史
  • 随笔记录
登录 注册
投稿
  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

相关推荐

  • unittest框架之DDT驱动 2022年4月17日
  • Javascript简介 2022年9月5日
  • ES6 let关键字和var关键字的区别 2022年9月8日
  • JavaScript 基础介绍! 2022年12月29日
  • 压缩 js 代码就用 terser 2022年7月3日
  • Windows提权 —— MSI文件提权 2022年8月3日
  • js事件对象 2022年6月14日
  • Memlab,一款分析 JavaScript 堆并查找浏览器和 Node.js 中内存泄漏的开源框架 2022年9月16日
  • postgresql用户与权限管理 2022年8月20日
  • PHP做API开发该如何设计签名验证 2022年7月9日

发表回复

请登录后评论...
登录后才能评论
  • 欢迎投稿
  • 隐私政策
  • 使用协议
  • 服务条款
  • 版权声明

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

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