我从meteor方法调用了API。如何将数据返回给客户端?我没有成功,如下所示:
Meteor.methods({
'geCoordinates': function(distance,location) {
this.unblock();
geocoder.geocode(location, function ( err, data ) {
if (err) {
console.log("See on error " + err)
} else {
lat = data.results[0].geometry.location.lat
lng = data.results[0].geometry.location.lng
}
url = 'http://localhost:3005/events?lat='+lat+'&lng='+lng+'&distance='+distance+'&sort=venue&accessToken=1048427405248222|u4dBjiRw-9gdsgml1puWYFGrEvw'
})
return url
}
})
答案 0 :(得分:1)
使用Promise可以通过一种很好的语法实现这一目标。似乎没有多少人意识到Meteor方法与Promise很好地配合。以下是如何做到这一点:
Meteor.methods({
'geCoordinates': function(distance, location) {
return geocoder.geocode(location).then((data) => {
lat = data.results[0].geometry.location.lat;
lng = data.results[0].geometry.location.lng;
return 'http://localhost:3005/events?lat=' + lat + '&lng=' + lng + '&distance=' + distance + '&sort=venue&accessToken=1048427405248222|u4dBjiRw-9gdsgml1puWYFGrEvw';
}).catch((err) => {
console.log("See on error " + err);
throw err;
});
}
})
答案 1 :(得分:-1)
您可以使用Npm future同步返回数据,使用Npm,您的代码将看起来像这样
在服务器端
PWD="pwd"
})
注意:这将同步返回数据。