[英]NodeJS Express custom validator how to require in separate file
我在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));
./api/controllers/custom_validators.js
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));
将需要调整为app.use(expressValidator(customValidators))
另一种方法是创建一个router
,不需要使用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'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.