Also im Grunde ruft der Client den Server mit einem Meteor.call
. Die Server-Methode führt dann einige Validierungen durch und ruft einen Web-Service mit einem Meteor-Paket auf. Wenn die Validierung fehlschlägt und ein Meteorfehler ausgelöst wird, erreicht sie den Server. Wenn die Paketantwort einen Fehler aufweist, meldet sie sich nur beim Server an. Ich brauche den Fehler, um den Client zu erreichen.Werf Meteor.Error erreicht den Client nicht
So sieht der Code aus.
Kunde
Meteor.call('callService', (err, result) => {
if(err) {
console.log(err.reason);
}
});
Server
Meteor.methods({
'callService'(){
if (!Meteor.user()) {
// Error 1
throw new Meteor.Error('insufficient-permissions', 'You need to login first');
}
// Using an meteor package to actually call the service
package.callService(apiKey, (err, response) => {
if (response.status === 'error') {
// Error 2
throw new Meteor.Error('service-error', response.message);
}
});
},
});
Im Server-Methode, wenn ein Fehler bei Fehler 1 geworfen wird, hat es den Client erreichen, aber Fehler 2 nicht. Fehler 2 meldet nur den Server an.
Das war völlig der Fall. Es tut mir leid, ich habe total vergessen, dies als akzeptiert zu markieren – nupac