2012-04-21 35 views
23

Vì vậy, tôi đang cố viết một phương thức thực hiện cuộc gọi http. Khi tôi chạy phương pháp này, tôi nhận được lỗi sau:Phương thức Meteor.http không được xác định trên máy chủ?

Exception while invoking method 'upload' TypeError: Cannot call method 'call' of undefined

Đây là những gì mã trông giống như:

Chủ đầu tư:

console.log(Meteor.call('upload', f, content)); 

Server:

Meteor.methods({ 
    upload: function(file, content) { 
    this.unblock(); 
    Meteor.http.call("PUT", "http://blah"); 
    } 
}); 

CẬP NHẬT : Đã giải quyết được sự cố, tôi phải bật gói: meteor add http

+0

Các * biểu * 'Meteor.http' đánh giá để xác định ... vấn đề/câu hỏi ở đâu? Một câu hỏi sẽ là: "Tại sao Meteor.http không phải là một chức năng?" hoặc một số như vậy. Đây chỉ là gỡ lỗi.) –

+0

http://docs.meteor.com/#meteor_http_call –

+0

Có lỗi nào trong bảng điều khiển của trình duyệt không? –

Trả lời

40

Bạn chỉ cần thêm các gói HTTP bằng cách chạy này trên dòng lệnh trong dự án của bạn:

sao băng thêm http

+0

Đã cố gắng ... vẫn cho tôi lỗi rằng Meteor.http không xác định. –

3

Ngoài ra bạn cần một cuộc gọi trở lại sử dụng phía client Meteor.call.

Từ các tài liệu:

On the client, if you do not pass a callback and you are not inside a stub, call will return undefined, and you will have no way to get the return value of the method. That is because the client doesn't have fibers, so there is not actually any way it can block on the remote execution of a method.

Vì vậy, bạn nên thay đổi này

console.log(Meteor.call('upload', f, content)); 

này

Meteor.call('upload', f, content, function(error, result){console.log(result);}); 
Các vấn đề liên quan