Uso el validador más rápido para validar un objeto como este:
{ "_id":"619e00c177f6ea2eccffd09f", "parent_id": "619e00c177f6ea2eccffd09f", } _id y parent_id no deben ser iguales. ¿Cómo verificar eso? Sé que fastest-validator tiene la siguiente validación para la igualdad . pero necesito comprobar lo contrario. (ejemplo para type= "equal" ):
const schema = { password: { type: "string", min: 6 }, confirmPassword: { type: "equal", field: "password" } } const check = v.compile(schema); check({ password: "123456", confirmPassword: "123456" }); // Valid check({ password: "123456", confirmPassword: "pass1234" }); // FailGracias por adelantado
Según Metainformación para validadores personalizados :
Puede pasar cualquier metainformación adicional para los validadores personalizados que está disponible a través de context.meta.
para que pueda comparar los dos campos que quiera. En mi para comparar _id y parent_id puedo usar esto:
const v = new Validator({ useNewCustomCheckerFunction: true, messages: { notEqual: "_id and parent_id can not be equal" } }); const editSchema = { _id: { type: "string" }, parent_id: { type: "string", custom: (value, errors, schema, name, parent, context) =>{ if (context.data._id === value) errors.push({type: "notEqual"}) return value } } };