Javascript NodeJS Express自定义验证器如何在单独的文件中要求
我正在NodeJS和express中构建一个应用程序 我正在使用express validator模块。我想创建自己的自定义验证函数 我能够使用下面的语法进行自定义验证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
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
isapp.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'));