text: var _ = require('lodash')
  var logger = require('./logger.js').getInstance()
  
  module.exports = {
    getTarget: getTarget
  }
  
  function getTarget (req, config) {
    var newTarget
    var router = config.router
  
    if (_.isPlainObject(router)) {
      newTarget = getTargetFromProxyTable(req, router)
    } else if (_.isFunction(router)) {
      newTarget = router(req)
    }
  
    return newTarget
  }
  
  function getTargetFromProxyTable (req, table) {
    var result
    var host = req.headers.host
    var path = req.url
  
    var hostAndPath = host + path
  
    _.forIn(table, function (value, key) {
      if (containsPath(key)) {
        if (hostAndPath.indexOf(key) > -1) {    // match 'localhost:3000/api'
          result = table[key]
          logger.debug('[HPM] Router table match: "%s"', key)
          return false
        }
      } else {
        if (key === host) {                     // match 'localhost:3000'
          result = table[key]
          logger.debug('[HPM] Router table match: "%s"', host)
          return false
        }
      }
    })
  
    return result
  }
  
  function containsPath (v) {
    return v.indexOf('/') > -1
  }
  