标签: express-validator

快速验证器v4的检查功能中的访问请求体

我刚开始使用带有express-validator的express.js来验证一些输入数据,我在4.0.0版本中引入的新检查API中访问请求体时遇到了问题.

在旧版本中,您只需在body-parser之后的某个地方的app.js中添加express-validator作为中间件:

// ./app.js
const bodyParser = require("body-parser");
const expressValidator = require("express-validator");

const index = require("./routes/index");

const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(expressValidator());
Run Code Online (Sandbox Code Playgroud)

然后在我的索引路径中,我可以检查post方法的最终回调函数中的字段.

// ./routes/index.js
const express = require("express");
const router = express.Router();

router.post("/submit", (req, res, next) => {
    // check email
    req.check('email','Invalid email address').isEmail()
    // check if password is equal to password confirmation
    req.check('password', 'Invalid password')
    /* Access request body to compare password 
    field with password confirmation field */
    .equals(req.body.confirmPassword)

    // get errors
    const errors …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express express-validator

4
推荐指数
1
解决办法
6371
查看次数

express-validator:如何检查查询

随着express-validator我们如何可以检查的请求查询?

在文档中有一个检查正文的示例:

const { check, validationResult } = require('express-validator/check');

app.post('/user', [
  // username must be an email
  check('username').isEmail(),
  // password must be at least 5 chars long
  check('password').isLength({ min: 5 })
], (req, res) => {
  // Finds the validation errors in this request and wraps them in an object with handy functions
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(422).json({ errors: errors.array() });
  }

  User.create({
    username: req.body.username,
    password: req.body.password
  }).then(user => res.json(user));
});
Run Code Online (Sandbox Code Playgroud)

如何将其设置为仅检查GET方法查询? …

node.js express express-validator

4
推荐指数
2
解决办法
1万
查看次数

JavaScript 中的链式函数

有没有办法在 JavaScript 中链接函数,所以当调用链中的最后一个函数时,我们会考虑链中指定的所有函数。基本上我想做的事情与express-validator 做的事情是一样的:像这样:

check('password').passwordValidator().optional();
Run Code Online (Sandbox Code Playgroud)

我希望能够打电话

check('password').passwordValidator();
Run Code Online (Sandbox Code Playgroud)

check('password').passwordValidator().optional();
Run Code Online (Sandbox Code Playgroud)

javascript node.js express-validator

4
推荐指数
3
解决办法
9017
查看次数

如何使用express-validator验证正则表达式?

我正在尝试使用express-validator验证手机号码正则表达式。

我浏览了文档 api,但找不到检查正则表达式的验证器函数。regex.test()像下面这样使用会起作用吗?


body('mobile', 'Invalid mobile number.')
           .escape()
           .exists({checkFalsy: true})
           .isLength({min: 11, max:11})
           .regex.test(/^(\+123)\d{11}$/)
Run Code Online (Sandbox Code Playgroud)

validation express-validator

4
推荐指数
1
解决办法
1万
查看次数

如何在快速验证器中设置小数的最小值

我正在尝试在快速路线上验证我的身体,但在尝试找出如何强制执行小数的最小值时遇到困难。我试过了

check("price").exists().isDecimal({min:0})
Run Code Online (Sandbox Code Playgroud)

check("price").exists().isDecimal({gt:0})
Run Code Online (Sandbox Code Playgroud)

但似乎都不起作用

node.js express express-validator

4
推荐指数
1
解决办法
2555
查看次数

如何使用express-validator验证字符长度是否等于5?

我打算将partnerid字段字符长度设为5,这意味着如果用户输入少于5个字符或超过5个字符(包括字母数字字符),将收到错误消息.我们怎么能用express-validator来做呢?我尝试使用下面的代码,但它没有工作谢谢

   req.checkBody('partnerid', 'Partnerid field must be 5 character long ').len(5);
Run Code Online (Sandbox Code Playgroud)

html node.js express express-validator

3
推荐指数
1
解决办法
4285
查看次数

Express Validator - 如何处理条件验证

我有一个表格,如果一个人的送货地址与其帐单地址不同,他们将选择一个单选按钮说“不”。

我需要能够检查 this 的值是什么,如果它是“否”,请检查展开的表单。如果是“是”,我会跳到下面的下一个验证。“是”部分正在工作,但“否”部分总是返回无效。有没有办法用这个库在这样的条件中嵌套验证?

这是表格的屏幕截图:

测试表格图片

这是我针对这种情况的验证代码:

    router.post('/testData2/', [
      body('billingSameAsShipping', "Please Fill All Fields Of Your Billing Address").custom((value) => {
        if (value === 'no') {
          [
            body('billingFirstName', "Please Enter Your First Name").isLength({
              min: 1
            }),
            body('billingLastName', "Please Enter Your Last Name").isLength({
              min: 1
            }),
            body('billingAddress1', "Please Enter Your Billing Address").isLength({
              min: 1
            }),
            body('billingZip', "Please Enter Your Billing ZipCode").isLength({
              min: 1
            }),
            body('billingCity', "Please Enter Your Billing City").isLength({
              min: 1
            }),
            body('billingState', "Please Enter Your Billing State").isLength({
              min: 1
            })
          ] …
Run Code Online (Sandbox Code Playgroud)

node.js express validator.js express-validator

3
推荐指数
2
解决办法
7379
查看次数

如何使用 express-validator 在单独的文件中实现验证

我正在尝试使用 express-validator 来验证 req.body,然后再发送将数据插入到 postgres 的 post 请求。

我有一个路由文件、控制器文件,我想在一个名为 validate.js 的文件中执行验证。同时,我已经安装了 express-validator 并在我的 server.js 中导入了它。我遇到的其他资源似乎在包含插入数据的逻辑的函数中实现了验证。

//server.js
....
import expressValidator from 'express-validator';

...
app.use(bodyParser.urlencoded({ extended: false }));
app.use(expressValidator);

Run Code Online (Sandbox Code Playgroud)
//route.js
import express from 'express';
import usersController from './controller';

const router = express.Router();

router.post('/createuser', usersController.createUser);

Run Code Online (Sandbox Code Playgroud)
//controller.js
createUser(req, res){
  // ...
  const { firstName, lastName, email, password } = req.body;
  //code to insert user details to the database
}

Run Code Online (Sandbox Code Playgroud)
//validator.js
import { check } from 'express-validator/check';

module.exports = [check('email').isEmail()];
Run Code Online (Sandbox Code Playgroud)

我希望在名为 validator.js 的文件中实现验证,例如,在插入数据库之前验证电子邮件

express express-validator

3
推荐指数
3
解决办法
9010
查看次数

Express-validator 的 isAlpha() 函数中的空格问题

我在我的项目中使用 Express-validator 我来自客户端的 json 是

{"name": "john doe"}
Run Code Online (Sandbox Code Playgroud)

我的快速验证码是

[check('name', 'invalid name').isAlpha()]
Run Code Online (Sandbox Code Playgroud)

为什么此代码返回无效名称,而这是一个字符串。我也尝试了isString()但它也不起作用,它的工作方式与isAlpha()相同。对客户端的错误json 响应是

{
"errors": [
    {
        "value": "john doe",
        "msg": "invalid name",
        "param": "name",
        "location": "body"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

isAlpha() 函数是否只将一个单词视为字符串

我怎样才能解决这个问题

validation mongodb node.js express express-validator

3
推荐指数
1
解决办法
8384
查看次数

猫鼬验证和使用 express-validator 有什么区别

根据我自己的知识,您可以在 mongoose 模式中进行几乎所有可以使用 express-validator 进行的验证。所以我可以只使用猫鼬吗,或者即使我只创建新文档,我也需要使用 express-validator

mongoose express-validator

3
推荐指数
1
解决办法
682
查看次数