2011-10-14 35 views
9

Làm cách nào để tải xuống nội dung của URL trong Nút khi sử dụng khung Express? Về cơ bản, tôi cần phải hoàn thành luồng xác thực Facebook, nhưng tôi không thể thực hiện việc này mà không cần GET URL Mã thông báo OAuth của họ.Nhận nội dung URL trong Node.js bằng Express

Thông thường, trong PHP, tôi muốn sử dụng Curl, nhưng tương đương với Node là gì?

Trả lời

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

Cảm ơn giải pháp Node thuần túy. Trong khi toàn bộ sự kiện điều hướng là mát mẻ, sự đơn giản của mô-đun yêu cầu làm cho mã đơn giản hơn rất nhiều cho dự án mà tôi đang làm việc. Bởi vì tôi đã không chỉ định module hoặc module-less, tôi sẽ đánh dấu nó là câu trả lời. –

+1

Tôi đã tìm thấy câu trả lời được chấp nhận tại http://stackoverflow.com/questions/6695143/how-to-make-web-service-calls-in-expressjs làm ví dụ tốt hơn về cùng một giải pháp. – ashack

7

Vấn đề mà bạn sẽ phía trước là: một số trang web tải nội dung của nó sử dụng JavaScript. Vì vậy, bạn cần một gói, như After-Load mô phỏng hành vi của trình duyệt, sau đó cung cấp cho bạn nội dung HTML của URL đó.

var afterLoad = require('after-load'); 
afterLoad('https://google.com', function(html){ 
    console.log(html); 
}); 
Các vấn đề liên quan