フォームデータの検証

フォームデータの検証

node.js を使用してログイン登録インターフェイスを作成する場合、非常に便利なフォーム検証が使用されました。

1. @hapi/joi パッケージをインストールします。このパッケージは、フォームに含まれる各データ項目の検証ルールを定義します。

npm install @hapi/joi@17.1.0

2. フォームデータの自動検証機能を実現するミドルウェア@escook/express-joiをインストールします。

npm i @escook/express-joi

3. 部分検証ルール

  • string() 値は文字列である必要があります
  • alphanum() 値には、a-zA-Z を含む文字列のみを指定できます。
  • min(len)最小長
  • max(len)最大長
  • required() 値は必須であり、未定義にすることはできません
  • パターン (正規表現) の値は、正規表現の規則に従う必要があります。

4. ユーザー情報検証ルールモジュール

// 导入验证规则包
const joi = require('@hapi/joi')
// 用户名的验证规则
const username = joi.string().alphanum().min(3).max(12).required()
// 密码的验证规则
const password = joi
.string()
.pattern(/^[\S]{6,8}$/)
.required()
// 注册和登录表单的验证规则对象
exports.schema = {
    
    
// 表示需要对 req.body 中的数据进行验证
body: {
    
    
username,
password,
},
}

5. ルーティング対応情報の変更

// 1. 导入验证表单数据的中间件
const expressJoi = require('@escook/express-joi')
// 2. 导入需要的验证规则对象
const {
    
     schema } = require('../schema/user')
router.post('/register', expressJoi(schema), userHandler.register)

ユーザー名が正常に検証されました
ユーザー名の確認
パスワードが正常に検証されました
パスワードを照合します

6. キャプチャデータの検証に失敗しました

// 导入验证规则包
const joi = require('@hapi/joi')
// 错误中间件
app.use(function (err, req, res, next) {
    
    
// 数据验证失败
if (err instanceof joi.ValidationError) return res.send(err)
// 未知错误
res.send(err)
})

たとえば、ログインに失敗した場合、
ログインに失敗しました
上記はフォーム認証に便利な方法です~

おすすめ

転載: blog.csdn.net/weixin_51938823/article/details/131939706