Search code examples
middlewareloopbackjsstrongloop

executing query via middleware


While using strongloop loopback I want check the database for accesstoken and username existence in every request.

So i am making a middleware code:

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

I have added it to :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
    }
  }

i want to execute an sql query here but i have no idea on how can i do that, I probably just need "app" variable access or directly "dataSource" access.

Any help is appreciated.


Solution

  • To access "app" variable from middleware use

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

    To access "dataSource" variable from middleware use

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

    To access an specific model from middleware use

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

    for more methods/sources use this documentation link https://docs.strongloop.com/display/public/LB/Working+with+LoopBack+objects