2011-10-14 25 views
9

如何在使用Express框架时下载Node中URL的内容?基本上,我需要完成Facebook身份验证流程,但如果没有获取其OAuth令牌URL,我无法完成此操作。使用Express在Node.js中获取URL内容

通常,在PHP中,我会使用Curl,但是什么是Node等价物?

回答

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

感谢您的纯节点解决方案。虽然整个事件驱动的事情很酷,但请求模块的简单性使得我正在使用的项目的代码更加简单。因为我没有指定模块或模块,我将把它标记为答案。 –

+1

我在http://stackoverflow.com/questions/6695143/how-to-make-web-service-calls-in-expressjs找到了接受的答案,是相同解决方案的更好例子。 – ashack

7

,你将前面的问题是:一些网页使用JavaScript加载其内容。因此,您需要一个软件包,例如模拟浏览器行为的After-Load,然后为您提供该URL的HTML内容。

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