使用路由 V4 在 express-validator 上未定义检查

Fel*_*lva 2 node.js express express-validator

我一直在使用 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);
};
Run Code Online (Sandbox Code Playgroud)

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

gus*_*nke 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;
Run Code Online (Sandbox Code Playgroud)

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