Error: proxy-by-url must provide proper url

Posted by: Seth Lakowske


I get the following error using v0.0.3 of proxy-by-url from github:

19:55:27/seth/boltzman~/workspace/proxy-service-directory> node index.js 

throw err;
Error: Must provide a proper URL as target
at ProxyServer. (/home/seth/workspace/proxy-service-directory/node_modules/http-proxy/lib/http-proxy/index.js:68:35)
  at Server.closure (/home/seth/workspace/proxy-service-directory/node_modules/http-proxy/lib/http-proxy/index.js:125:43)
  at Server.emit (events.js:98:17)
  at HTTPParser.parser.onIncoming (http.js:2108:12)
  at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23)
  at Socket.socket.ondata (http.js:1966:22)
  at TCP.onread (net.js:527:27)

Using the example in the

        '/database': { port: 5984, host: 'localhost' },

The problem comes from an API change to http-proxy. http-proxy v1.0 has a new API which is incompatible with proxy-by-url v0.0.3. So, I created a new module called proxy-by-directory that is inspired by proxy-by-url and works with http-proxy v1.0. It's on npm and github. You use proxy-by-directory like this:

var server = require('http').createServer(require('proxy-by-directory')({
    '/articles' : { target : 'http://localhost:5555/' },
    '/' : { target : '' }