2016-03-21 11 views
1

Ich versuche, einem Modell eine nicht statische Remotemethode hinzuzufügen. Folgen Sie einfach dem code hier. Leider habe ich eine Fehlermeldung erhalten.loopback Fügen Sie nicht statischen Remotemethodenfehler hinzu

Nachstehend ist mein Code

User.prototype.lastOrder = function(callback){ 
    console.log('print this instance object: ', this); 
    callback(null) 
}; 

User.remoteMethod('__get__lastOrder', { 
    isStatic: false, 
    accepts: [], 
    description: 'Get the latest order of the user', 
    http: { 
    path: '/lastOrder', 
    verb: 'get' 
} 

Und wenn ich http://localhost:3000/v1/users/1/lastOrder aufzurufen. es gibt mir die folgende Fehlermeldung:

enter image description here

Antwort

2

Das erste Argument für remoteMethod ist der Name der Funktion. Was Sie definiert haben, ist nicht gültig. Sie müssen eine Funktion namens definieren, na ja, lassen Sie uns lastOrder sagen, und dann Ihren Code ändern, wie so:

User.prototype.lastOrder = function() { 

} 

User.remoteMethod('lastOrder', { 
    isStatic:false, 
    //more stuff here 
} 
+0

Hallo, ich habe auf diese Weise versucht, immer noch die gleichen Fehler. –

+0

Siehe meinen Kommentar unten. Du hast eine neue Antwort gepostet. Funktionierte das für dich? –

2
User.prototype.lastOrder = function(callback){ 
    console.log('print this instance object: ', this); 
    callback(null, "this is a test"); 
    }; 

    User.remoteMethod('lastOrder', { // should be lastOrder not __get__lastOrder 
    isStatic: false, 
    accepts: [], 
    description: 'Get the latest order of the user', 
    http: { 
     path: '/lastOrder', 
     verb: 'get', 
     status: 200 
    }, 
    returns: {root: true, type: 'order'} 
    }); 
+0

Sagst du, dass das für dich funktioniert hat? –

+0

@ RaymondCamden. Ja. Es ist eine statische Methode, also sollte es 'User.prototype.lastOrder' sein. Ich dachte, du hättest einen Tippfehler gemacht, also poste ich die richtige Antwort, möchte nur vermeiden, andere zu täuschen. Wie auch immer, ich werde deine Antwort akzeptieren, aber ich werde deine Antwort korrigieren. –

+0

Danke für die Klärung. Ich hätte schwören können, dass die Dokumentation sagt, Model.NAME für alle Fälle zu verwenden, sogar nicht-statische, aber es ist sinnvoll, dass es unter Prototyp wäre. –

Verwandte Themen