NodeJs 快速验证器。区分大小写检查 json
NodeJs express-validator. Case sensitive checking json
我正在编写一个 NodeJS 应用程序。
我正在尝试使用 'express-validator':
验证输入 json
var express = require('express');
const winston = require('../config/winston');
const { check, validationResult } = require('express-validator');
const myController= require('../controller/myController.js');
var router = express.Router();
router.use( [
check('COMMON.user','User incorrect').not().isEmpty(),
],
(req, res, next) => {
const resCheck = validationResult(req);
if (!resCheck.isEmpty()) {
obj= req.body;
obj.COMMON= {codigoRespuesta:-1, textoRespuesta:"Error checking request"};
winston.info(JSON.stringify(obj));
return res.json(obj);
}else{
console.log("vacio");
}
return myController.procesaRequest(req, res);
});
+
似乎“check”方法区分大小写。如果 json 输入包含 "{common: {user:"Test"..." 抛出错误,但是 "{COMMON: {user: "Test"..." 工作正常。
如何使“检查”不区分大小写?
谢谢!
我不确定为什么您需要不区分大小写的检查,因为 api-s 必须严格验证。
但我建议您将 common
转换为 COMMON
以实现您的目标:
router.use(
// transforming (adapting)
(req, res, next) => {
if (req.body && req.body['common']) {
req.body['COMMON'] = Object.create(req.body['common']);
delete req.body['common'];
}
next();
},
// validation
[
check('COMMON.user', 'User incorrect').not().isEmpty(),
],
// post-validation
(req, res, next) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
winston.info(JSON.stringify(req.body), errors.array());
return res.status(400).json({
codigoRespuesta: -1,
textoRespuesta: "Error checking request",
errors: errors.array()
});
}
next();
},
// handler
myController.procesaRequest
);
我正在编写一个 NodeJS 应用程序。 我正在尝试使用 'express-validator':
验证输入 jsonvar express = require('express');
const winston = require('../config/winston');
const { check, validationResult } = require('express-validator');
const myController= require('../controller/myController.js');
var router = express.Router();
router.use( [
check('COMMON.user','User incorrect').not().isEmpty(),
],
(req, res, next) => {
const resCheck = validationResult(req);
if (!resCheck.isEmpty()) {
obj= req.body;
obj.COMMON= {codigoRespuesta:-1, textoRespuesta:"Error checking request"};
winston.info(JSON.stringify(obj));
return res.json(obj);
}else{
console.log("vacio");
}
return myController.procesaRequest(req, res);
});
+ 似乎“check”方法区分大小写。如果 json 输入包含 "{common: {user:"Test"..." 抛出错误,但是 "{COMMON: {user: "Test"..." 工作正常。
如何使“检查”不区分大小写?
谢谢!
我不确定为什么您需要不区分大小写的检查,因为 api-s 必须严格验证。
但我建议您将 common
转换为 COMMON
以实现您的目标:
router.use(
// transforming (adapting)
(req, res, next) => {
if (req.body && req.body['common']) {
req.body['COMMON'] = Object.create(req.body['common']);
delete req.body['common'];
}
next();
},
// validation
[
check('COMMON.user', 'User incorrect').not().isEmpty(),
],
// post-validation
(req, res, next) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
winston.info(JSON.stringify(req.body), errors.array());
return res.status(400).json({
codigoRespuesta: -1,
textoRespuesta: "Error checking request",
errors: errors.array()
});
}
next();
},
// handler
myController.procesaRequest
);