0

I have express server and I use middleware like this:

server.use('/api/*', createProxyMiddleware({
      target: 'https://dev.apiserver.dev',
      secure: false,
      logLevel: 'debug',
      changeOrigin: true,
      cookieDomainRewrite: '',
}));

What I want to do, is to use this middleware only when I run this server on localhost, not on real server. How can I do that?

O. Shekriladze
  • 1,346
  • 1
  • 19
  • 36

2 Answers2

2
var server = require('express')
var server = express()
var router = express.Router()

router.use('/api/*', function (req, res, next) {
 if(req.originalUrl.indexOf('localhost') > 0 || req.originalUrl.indexOf('127.0.0.1') > 0){
  createProxyMiddleware({
      target: 'https://dev.apiserver.dev',
      secure: false,
      logLevel: 'debug',
      changeOrigin: true,
      cookieDomainRewrite: '',
  })
 }
 next();
});
server.use('/', router)
DevLoverUmar
  • 11,809
  • 11
  • 68
  • 98
0

One very simple solution would be to check for the ENV in which the application is running in.

const environment = process.env;
const isDeployed = environment.NODE_ENV === 'production' || environment.NODE_ENV === 'development'; // etc

if (isDeployed) {
    server.use('/api/*', createProxyMiddleware({
        target: 'https://dev.apiserver.dev',
        secure: false,
        logLevel: 'debug',
        changeOrigin: true,
        cookieDomainRewrite: '',
    }));
}
Sagar Chilukuri
  • 1,430
  • 2
  • 17
  • 29