Wenn ich versuche, eine neue Adresse zu erstellen, schlägt die Validierung jedes Mal aufgrund des benutzerdefinierten Validators fehl. Es schlägt immer noch fehl, wenn ich den Inhalt von companyExists durch 'return true' ersetze. Ich fand, dass eine Problemumgehung darin bestand, den benutzerdefinierten Validierer in einer der Dateien in etwas anderem wie CompanyExists2 umzubenennen. Es scheint, dass benutzerdefinierte Validatoren nicht denselben Namen haben können. Ist das erwartete Verhalten für Sails.js? Postbote einen 400 Fehler zurückgibt sagen, dass die Validierung mit einer JSON-Antwort von fehlgeschlagen:Sind eindeutige benutzerdefinierte Validierungsnamen erforderlich?
"invalidAttributes": {
"company": [
{
"rule": "companyExists",
"message": "\"companyExists\" validation rule failed for input: 1\nSpecifically, it threw an error. Details:\n undefined"
}
]
},
In models/Address.js ich habe:
module.exports = {
attributes: {
street: {
type: 'string'
},
// More attributes
company: {
model: 'company',
required: true,
unique: true,
companyExists: true
}
},
types: {
companyExists: function(companyID) {
Company.findOne(companyID).exec(function(err, company) {
if (err || !company) return false;
return true;
});
}
}
};
In models/Company.js ich habe:
module.exports = {
attributes: {
name: {
type: 'string',
required: true
},
// More attributes
company: {
model: 'company',
required: true,
unique: true,
companyExists: true
}
},
types: {
companyExists: function(companyID) {
Company.findOne(companyID, function (err, company) {
if (err || !company) return false;
return true;
});
}
}
};