Meteor:在控制台(服务器)上可见,未定义发送到客户端
Meteor: visible on console (server), sends undefined to client
终于潜入流星了。我有一个关于http get请求的小问题。
在客户端上执行一个简单的调用以从服务器获取数据。
if (Meteor.isClient) {
Template.liveprice.helpers({
price: function() {
Meteor.call('getPrice', function(error, response) {
if (error) {
return error;
} else {
return response;
}
})
}
})
}
在服务器上,数据是从实时和公共 API 检索的。它在服务器上工作正常,但未定义的结果被发送回客户端。我在这里错过了什么?
if (Meteor.isServer) {
Meteor.methods({
getPrice: function() {
var url = 'https://www.bitstamp.net/api/ticker/';
var req = HTTP.call('GET',url,function(error, result) {
//console.log(result);
if (result.statusCode == 200) {
var last = result.data.last;
console.log(last);//this shows the desired result in the server's console
return last;//sends back undefined to the client
} else {
return error;
}
});
}
})
}
@epascarello是对的。幸运的是,由于纤维,Meteor的HTTP也可以同步工作。试试这个:
Meteor.methods({
getPrice: function() {
var url = 'https://www.bitstamp.net/api/ticker/';
var result;
try {
result = HTTP.get(url);
check(result.data.last, String);
return result.data.last;
} catch (error) {
throw new Meteor.Error('get-price-failed', 'Could not retrieve the price.');
}
}
});
相关文章:
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- 'io未定义'在客户端上.在HTML中包含socket.io脚本标记
- JS文件未在客户端浏览器上更新
- Meteor 方法返回未定义到客户端(异步)
- 自定义验证程序客户端验证函数未触发
- SignalR 客户端中心代理未定义
- 在 MQTT 客户端中“未捕获的引用错误:未定义消息传递”
- 未捕获的引用错误: 字符串未定义客户端模板.js?rev=J%2BGzwlHEWSv11%2BqD9XeOaw%3D%3
- ASP.NET 2.0自定义客户端验证在Internet Explorer中不起作用
- 字节图像未从客户端浏览器保存在数据库中
- 如何在Meteor包中包含JavaScript,使其's未在客户端中转换
- MVC3和自定义客户端验证消息
- 服务器端事件(SSE)未到达客户端
- “connect"事件未触发客户端套接字
- 带有DateTime属性的服务器端投影未在客户端上反序列化
- 套接字.io自定义客户端ID
- 如何设置SignalR自定义客户端id
- 流星集合未在客户端更新订阅
- 如何在asp.net中添加动态自定义客户端验证器
- Meteor.js:在方法调用中未在客户端捕获到错误