2017-08-10 3 views
0

Titel gibt es, gibt es eine Möglichkeit zu vermeiden, neue Filter für jedes neue Feld in der Datenbank hinzugefügt, wenn das Feld für Filterzwecke von verfügbar sein sollte Client-Seite/Front-End-Anwendung. Dies ist ein Problem, das mir aufgefallen ist, dass es mich nervt, da ich jedes Mal einen neuen Filter erstellen muss, wenn der Datenbank ein neues Feld hinzugefügt wird.Sails API - Wie zu vermeiden neue Filter für jedes neue Feld in der Datenbank

Datenbank: mysql

folgende Beispielcode:

function (req, res) { 
    var params = req.params(); // get all params from request URI in JSON format 
    var filter = {}; 
    if(params.name){ 
    filter.name = { contains: params.name }; 
    } 

    // ... and so on for other fields. 
    // this is where the part it is getting annoying 
    // as if there's a new field added, we have to 
    // add more and more code 

    Model.find(filter).exec(function (err, records) { 
    // handle error and send response back 
    } 
} 
+0

Können Sie mehr über Ihre Frage näher erläutern? Welche Datenbank benutzen Sie? Wo wird Filter verwendet? – tibetty

+0

@XihuaDuan ist es klarer zu verstehen? – jodylan

+0

Ich glaube, durch die ordnungsgemäße Verwendung von Object.keys(), können Sie eine präzise und saubere Lösung herauskommen. – tibetty

Antwort

0

kommt mein Code-Snippet für Ihre Referenz:

for (let key of Object.keys(params)) { 
    filter[key] = {contains: params[key]}; 
} 
Verwandte Themen