Node.js, grunt-express, ja json-proxy

Tuli ajankohtaiseksi säätää grunt-express testiserveri toimimaan proxyn kera. Yllättävän vaikea homma, grunt connectille oli jo valmiina esimerkkejä mutta kun olin rakentanut express serverin varaan jo aika paljon, sille ei tietysti löytynyt hyviä proxy-esimerkkejä. Ja suora soveltaminen connect oppaista ei auttanut.

Lopulta onnistui json-proxyn kanssa. Käännekohta oli hoksata että middleware-parametri, joka on Connectilla olio, on Expressillä taulukko. Tässä toimiva ratkaisu:

express: {
  all: {
    options: {
      port: 9000,
      hostname: "0.0.0.0",
      bases: [path.resolve('.')], 
      livereload: true,
      middleware: [
        require('json-proxy').initialize({
         proxy: {
           forward: {
             '/google': 'http://www.google.com/',
           },
           headers: {
             'X-Forwarded-User': 'Express Proxy'
           }
         }
       })
     ]
  }
}
}

Ja tietysti sopivassa kohtaa aiemmin:

var path = require(’path’);

Huomaa että tuossa ratkaisussa kaikki /google alkuiset menevät siis http://www.google.com/google osoitteeseen. Proxy näyttäisi kumminkin toimivan hienosti, ja proxyttelee toki muutakin kuin vain jsonia.

 

Mainokset

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s