// Copyright IBM Corp. 2014,2016. All Rights Reserved. // Node module: loopback-context // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT 'use strict'; var contextPerRequest = require('../server/middleware/per-request.js'); // Use `var lbContext = require('loopback-context');` in your app var lbContext = require('../'); var loopback = require('loopback'); var app = loopback(); // Configure the context middleware app.middleware('initial', contextPerRequest()); // Store a request property in the context app.use(function saveHostToContext(req, res, next) { var currentContext = lbContext.getCurrentContext(); if (currentContext) currentContext.set('host', req.hostname); next(); }); app.use(loopback.rest()); var Color = loopback.createModel('color', {name: String}); Color.beforeRemote('**', function(ctx, unused, next) { // Inside LoopBack code, you can read the property from the context var currentContext = lbContext.getCurrentContext(); if (currentContext) console.log('Request to host %s', currentContext && currentContext.get('host')); next(); }); app.dataSource('db', {connector: 'memory'}); app.model(Color, {dataSource: 'db'}); app.listen(3000, function() { console.log('A list of colors is available at http://localhost:3000/colors'); });