Created
January 21, 2016 07:05
-
-
Save SandeshSarfare/27cc755729c2ef0510d0 to your computer and use it in GitHub Desktop.
getCurrentContext() returns null randomly
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Members.js | |
----javascript | |
Members.getMember = function(Id, cb) { | |
var ctx = loopback.getCurrentContext(); | |
var currentUser = ctx && ctx.get('currentUser'); | |
var realms = []; | |
realms = currentUser.realm.split(","); | |
var fltr = { | |
"where": { | |
"id": Id, | |
"center": { | |
"inq": realms | |
} | |
} | |
}; | |
Members.find(fltr, function(err, res) { | |
console.log(err,res); | |
}); | |
}; | |
//boot script | |
var loopback = require('loopback'); | |
var boot = require('loopback-boot'); | |
var app = module.exports = loopback(); | |
app.start = function() { | |
// start the web server | |
return app.listen(function() { | |
app.emit('started'); | |
var baseUrl = app.get('url').replace(/\/$/, ''); | |
console.log('Web server listening at: %s', baseUrl); | |
if (app.get('loopback-component-explorer')) { | |
var explorerPath = app.get('loopback-component-explorer').mountPath; | |
console.log('Browse your REST API at %s%s', baseUrl, explorerPath); | |
} | |
}); | |
}; | |
app.use(loopback.context()); | |
app.use(loopback.token()); | |
app.use(function setCurrentUser(req, res, next) { | |
if (!req.accessToken) { | |
return next(); | |
} | |
app.models.User.findById(req.accessToken.userId, function(err, user) { | |
if (err) { | |
return next(err); | |
} | |
if (!user) { | |
return next(new Error('No user with this access token was found.')); | |
} | |
var loopbackContext = loopback.getCurrentContext(); | |
if (loopbackContext) { | |
loopbackContext.set('currentUser', user); | |
} | |
next(); | |
}); | |
}); | |
// Bootstrap the application, configure models, datasources and middleware. | |
// Sub-apps like REST API are mounted via boot scripts. | |
boot(app, __dirname, function(err) { | |
if (err) throw err; | |
// start the server if `$ node server.js` | |
if (require.main === module) | |
app.start(); | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment