2011-10-14 26 views
9

Come dovrei fare per scaricare il contenuto di un URL nel nodo quando si utilizza il framework Express? Fondamentalmente, ho bisogno di completare il flusso di autenticazione di Facebook, ma non posso farlo senza ottenere il loro URL token OAuth.Ottieni contenuto URL in Node.js con Express

Normalmente, in PHP, userei Curl, ma qual è l'equivalente del Nodo?

risposta

22
var options = { 
    host: 'www.google.com', 
    port: 80, 
    path: '/index.html' 
}; 

http.get(options, function(res) { 
    console.log("Got response: " + res.statusCode); 
}).on('error', function(e) { 
    console.log("Got error: " + e.message); 
}); 

http://nodejs.org/docs/v0.4.11/api/http.html#http.get

+1

Grazie per la soluzione Pure-Node. Mentre l'intera idea dell'evento è interessante, la semplicità del modulo di richiesta rende il codice molto più semplice per il progetto con cui sto lavorando. Perché non ho specificato modulo o modulo-less, ho intenzione di contrassegnarlo come la risposta. –

+1

Ho trovato la risposta accettata su http://stackoverflow.com/questions/6695143/how-to-make-web-service-calls-in-expressjs per essere un esempio migliore della stessa soluzione. – ashack

7

Il problema che si è di fronte: un po 'di pagina web carica il contenuto utilizzando JavaScript. Quindi, hai bisogno di un pacchetto, come After-Load che simula il comportamento del browser, quindi ti fornisce il contenuto HTML di quell'URL.

var afterLoad = require('after-load'); 
afterLoad('https://google.com', function(html){ 
    console.log(html); 
});