2

我一直在使用 expressjs 开发应用程序,但在使用 express-validator V4 时出现错误。错误是: TypeError: check is not a function

所以我的代码如下所示:

//users.js
var check  = require('express-validator/check');
var validationResult = require('express-validator/check');

router.post('/register',[
    check('name').exists()
], function(req, res){
    var errors = validationResult(req);
    if(errors){
        console.log('There are errors');
    }else{
        console.log('No errors');
    };
});

module.exports = function(app){
    app.use('/users', router);
};

请注意,我使用的是纯 JavaScript,没有 ES6。谢谢。

4

3 回答 3

7

express-validator 包含 ES6,它支持 Node 6+。
正如您在评论中所说,您使用的是 Node 8.4.0,那么您就可以了。

您导入的函数错误,因为您必须从默认导出绑定函数。或者使用解构,这更酷:

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

// or:

const check = require('express-validator/check').check;
const validationResult = require('express-validator/check').validationResult;

另外,记得检查使用部分:)

于 2017-10-02T13:29:41.037 回答
1

尝试从您的要求声明中删除“/检查”部分以

var check  = require('express-validator');
var validationResult = require('express-validator');
于 2019-08-23T03:09:58.123 回答
0

的语法app.use(expressValidator())是 express-validator 的传统语法。有关详细信息,请参阅https://express-validator.github.io/docs/legacy-api.html

建议您将代码和语法升级到较新的版本,其中check有一个独立的中间件(示例),而不是req.

但是,如果您不想重写代码的整个验证器部分,那么您需要做的就是将package.jsonexpress-validator 的版本设置为express-validator:~3(而不是^6...任何版本)并 do npm i。那应该解决它。

于 2019-06-22T20:28:17.380 回答