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 .....
}
}
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
@ devnull69 Ich habe mit doppelten Anführungszeichen überprüft, hat aber das gleiche Problem. – jones
Maby hinzufügen 'console.log (groupByCandition);' zu 'JobPosting.jobsByDate' und Ergebnis anzeigen –