Вы не можете использовать NoteUpsertSchema
в утилите check
в Метеоре.
check
, audit-argument-checks
, simpl-schema
и collection2
работают очень хорошо в синхронизации, такой проблемы с взаимосовместимостью нет.Check
разрешает только определенные параметры, по которым вы можете проверять правильность. Нажмите здесь , чтобы узнать подробности о check
разрешенных типах.
Учитывая audit-argument-checks
, вам нужно использовать подход, показанный в качестве примера ниже, для проверки аргументов, передаваемых в Meteor Method.Чтобы избежать ошибок при проверке не всех аргументов, когда вы используете SimpleSchema для проверки аргументов метода Meteor, при создании экземпляра SimpleSchema необходимо пройти проверку как параметр.
import SimpleSchema from 'simpl-schema';
import { check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
SimpleSchema.defineValidationErrorTransform(error => {
const ddpError = new Meteor.Error(error.message);
ddpError.error = 'validation-error';
ddpError.details = error.details;
return ddpError;
});
const myMethodObjArgSchema = new SimpleSchema({ name: String }, { check });
Meteor.methods({
myMethod(obj) {
myMethodObjArgSchema.validate(obj);
// Now do other method stuff knowing that obj satisfies the schema
},
});
Убедитесь, что aldeed:simple-schema
не указан в спискев .meteor/versions
файле.
Также проблема может быть в отправке полного объекта с клиента и проверке только некоторых его полей в метеорном методе.Убедитесь, что параметр, отправляемый в метод, имеет только то, что проверяется, и не имеет дополнительного поля из клиентского кода.