2016-03-21 12 views
2

Während ich Strongloop Loopback verwenden möchte ich die Datenbank für AccessStoken und Benutzernamen Existenz in jeder Anfrage überprüfen.Ausführung Abfrage über Middleware

So mache ich einen Middleware-Code:

module.exports = function() { 
    return function xAuth(req, res, next) { 
    console.log(req); 
    }; 
}; 

Ich habe es hinzugefügt: initial“Middleware json

"initial": { 
    "compression": {}, 
    "cors": { 
     "params": { 
     "origin": true, 
     "credentials": true, 
     "maxAge": 86400 
     } 
    }, 
    "./middleware/trumptAuth": {}, 
    "helmet#xssFilter": {}, 
    "helmet#frameguard": { 
     "params": [ 
     "deny" 
     ] 
    }, 
    "helmet#hsts": { 
     "params": { 
     "maxAge": 0, 
     "includeSubdomains": true 
     } 
    }, 
    "helmet#hidePoweredBy": {}, 
    "helmet#ieNoOpen": {}, 
    "helmet#noSniff": {}, 
    "helmet#noCache": { 
     "enabled": false 
    } 
    } 

ich möchte auf eine SQL-Abfrage hier auszuführen, aber ich habe keine Ahnung, wie kann ich tun, dass ich wahrscheinlich nur brauchen „app“ Variablenzugriff oder direkt „datasource“ Zugang.

Jede Hilfe sehr geschätzt wird.

Antwort

1

Für den Zugriff auf "app" Variable von Middleware-Anwendung

app.use(function(req, res, next) { 
    var app = req.app; 
    ... 
}); 

To "datasource" Variable von Middleware-Einsatz

app.use(function(req, res, next) { 
    var dataSource = app.datasources.db; 
    ... 
}); 

Zugriff auf ein bestimmtes Modell von Middleware-Anwendung zugreifen

app.use(function(req, res, next) { 
    var app = req.app; 
    var modelName = app.model.modelName; 
    ... 
}); 

für weitere Methoden/Quellen verwenden Sie diesen Dokumentationslink https://docs.strongloop.com/display/public/LB/Working+with+LoopBack+objects

1

Aus der Dokumentation "Verwenden von Variablen in Middleware" (https://docs.strongloop.com/display/LB/Defining+middleware#Definingmiddleware-Usingvariablesinvalues) sieht es so aus, als könnten Sie einen beliebigen Teil des App-Objekts mit dieser Syntax übergeben: ${var}. Die Datenquelleneigenschaft ist unter dem Core-App-Objekt vorhanden, daher sollten Sie sie auf diese Weise übergeben können.

+0

Danke, ich habe tatsächlich gelöst, konnte aber die Antwort nicht posten. Die Antwort ist eigentlich einfach und ich werde es gerade jetzt posten. wir müssen nur var xyzModel = req.app.xyzModel; –

+0

Ah schön. Also denke ich, dass die Funktion, die ich oben verlinkt habe, als eine Alternative betrachtet werden könnte. :) –

+0

wahrscheinlich ja, aber ich sehe nicht die tatsächliche Verwendung, es sei denn, Sie wollen etwas sehr Spezifisches, das nicht in 'app' sein wird –