2012-04-11 32 views
6

Tôi đã chơi xung quanh với một ý tưởng và muốn nhận được một số json từ một trang web khác. Tôi tìm thấy với node.js người dường như sử dụng http.get để thực hiện điều này tuy nhiên tôi phát hiện ra nó không phải là dễ dàng trong Meteor. Có cách nào khác để làm điều này hay cách truy cập http để tôi có thể gọi? Tôi muốn một khoảng thời gian có thể thu thập dữ liệu từ một nguồn bên ngoài để tăng thêm dữ liệu mà khách hàng sẽ tương tác.Tôi có thể sử dụng các thư viện node.js khác trong Meteor không?

Trả lời

8

Hình như bạn có thể nhận tại require theo cách này:

var http = __meteor_bootstrap__.require('http'); 

Lưu ý rằng điều này sẽ có lẽ chỉ làm việc trên máy chủ, do đó hãy chắc chắn rằng nó được bảo vệ với một tấm séc cho Meteor.is_server.

+0

làm việc như một sự quyến rũ, cảm ơn! – dsummersl

+0

bất kỳ ý tưởng về làm thế nào để có được phụ thuộc transitive để làm việc? Hãy thử aws-lib chẳng hạn. – Joscha

+0

Meteor.is_server bây giờ là Meteor.isServer –

8

Điều này dễ dàng hơn bây giờ với Meteor.http. Đầu tiên chạy meteor add http, sau đó bạn có thể làm một cái gì đó như thế này:

// common code 
stats = new Meteor.Collection('stats'); 

// server code: poll service every 10 seconds, insert JSON result in DB. 
Meteor.setInterval(function() { 
    var res = Meteor.http.get(SOME_URL); 
    if (res.statusCode === 200) 
    stats.insert(res.data); 
}, 10000); 
0

Bạn có thể sử dụng Meteor.http nếu bạn muốn xử lý http. Để thêm Node.js khác thư viện bạn có thể sử dụng meteorhacks:npm

meteor add meteorhacks:npm

Tạo một file pacakges.json và thêm tất cả các gói tên và phiên bản yêu cầu.

{ 
    "redis": "0.8.2", 
    "github": "0.1.8" 
} 
Các vấn đề liên quan