Javascript NodeJS Express自定义验证器如何在单独的文件中要求

Javascript NodeJS Express自定义验证器如何在单独的文件中要求,javascript,node.js,express,Javascript,Node.js,Express,我正在NodeJS和express中构建一个应用程序 我正在使用express validator模块。我想创建自己的自定义验证函数 我能够使用下面的语法进行自定义验证 app.use(expressValidator({ customValidators: { isArray: function(value) { return Array.isArray(value); }, gte: function(param, num) { re

我正在NodeJS和express中构建一个应用程序

我正在使用express validator模块。我想创建自己的自定义验证函数

我能够使用下面的语法进行自定义验证

app.use(expressValidator({
 customValidators: {
    isArray: function(value) {
        return Array.isArray(value);
    },
    gte: function(param, num) {
        return param >= num;
    }
 }
}));
问题:如何将验证功能分离到一个单独的文件中,并将其包含在app.js文件中

我想在app.js文件中“要求”customValidators对象文本作为变量。我想我的customValidators对象将非常大,我希望app.js文件保持简单

我尝试了以下方法,但无效:

app.js

var customValidators = require('./api/controllers/custom_validators');

app.use(expressValidator(customValidators.customValidation));
var customValidation = customValidators: {
    isArray: function(value) {
        return Array.isArray(value);
    },
    gte: function(param, num) {
        return param >= num;
    }
 }
/api/controllers/custom_validators.js

var customValidators = require('./api/controllers/custom_validators');

app.use(expressValidator(customValidators.customValidation));
var customValidation = customValidators: {
    isArray: function(value) {
        return Array.isArray(value);
    },
    gte: function(param, num) {
        return param >= num;
    }
 }

您确定要在custom_validators.js文件中正确导出customValidation吗?做

module.exports.customValidation=customValidation
因为如果你像这样输出它
module.exports=customValidation


然后
app.use(expressValidator(customValidators.customValidation))
需要调整为
应用程序。使用(expressValidator(customValidators))

您确定在custom\u validators.js文件中正确导出customValidation吗?做

module.exports.customValidation=customValidation
因为如果你像这样输出它
module.exports=customValidation


然后
app.use(expressValidator(customValidators.customValidation))将需要调整为
app。使用(expressValidator(customValidators))

另一种方法是创建一个
路由器,您不需要使用
expressValidator
is
app.js
,使您的代码均匀有序:

// validators.js
var router = require('express').Router();
var expressValidator = require('express-validator');

router.use(expressValidator({
 customValidators: {
    isArray: function(value) {
        return Array.isArray(value);
    },
    gte: function(param, num) {
        return param >= num;
    }
 }
}))

module.exports = router;
在你的
app.js
中:

app.use(require('./validators'));

另一种方法是创建一个
路由器
,您不需要使用
expressValidator
就是
app.js
,让您的代码保持均匀的组织模式:

// validators.js
var router = require('express').Router();
var expressValidator = require('express-validator');

router.use(expressValidator({
 customValidators: {
    isArray: function(value) {
        return Array.isArray(value);
    },
    gte: function(param, num) {
        return param >= num;
    }
 }
}))

module.exports = router;
在你的
app.js
中:

app.use(require('./validators'));