2017-04-10 2 views
0

Ich habe meine benutzerdefinierte Strong-Loopback-Endpunkt erstellt, die Abfrage Bedingung und Callback-Funktion akzeptieren, kann Abfrage Bedingung ein JSON-Objekt wie {publishDate: {$lt: new Date(Date() - (1000 * 60 * 60 * 2))}} sein, aber Remote-Methode kann tu es nicht. Bellow ist meine Remote-Methode:Loopback benutzerdefinierte remote-Methode kann nicht JSON-codierten Objekt Wert

JobPosting.jobsByDate = function (groupByCandition, callback) { 
    JobPosting.find(groupByCandition,function (err, results) { 
    if (err) { 
     return callback('err'); 
    } 
    return callback(null, results.length); 
    }); 
} 


JobPosting.remoteMethod(
    'jobsByDate', 
    { 
    accepts: [ 
     {arg: 'queryCondition', type: 'json', required: true} 
    ], 
    returns: {root: true}, 

    http: {path: '/jobsByDate/:queryCondition', verb: 'get'} 
}); 

Aber wenn ich es über den Explorer aufrufen und übergeben {publishDate: {$lt: new Date(Date() - (1000 * 60 * 60 * 2))}} gibt Fehler:

{ 
"error": { 
"statusCode": 500, 
"name": "AssertionError", 
"message": "The query argument must be an object", 
"actual": false, 
"expected": true, 
"operator": "==", 
"generatedMessage": false, 
"stack": "AssertionError: The query argument must be an object\n at ..... 
} 
} 
+0

Ich bin mir nicht sicher, ob das das Problem ist, aber wenn ein Objektliteral als String übergeben wird, müssen die Schlüssel in doppelte Anführungszeichen eingeschlossen werden – devnull69

+0

@ devnull69 Ich habe mit doppelten Anführungszeichen überprüft, hat aber das gleiche Problem. – jones

+0

Maby hinzufügen 'console.log (groupByCandition);' zu 'JobPosting.jobsByDate' und Ergebnis anzeigen –

Antwort

0

ändern type: 'json'-type: 'object'. Dies sollte den Trick machen.

Verwandte Themen