用户保存行程(从一个城市到另一个城市),在将其存储到mongo集合之前,我的应用程序必须从mapquest api获取行程距离和时间。
你如何以及在哪里放置HTTP.call?服务器端 ?客户方?
答案 0 :(得分:1)
安装http模块:
meteor add http
创建一个服务器方法来调用Web服务。这是我的示例,其中用户放置URL并且代码返回页面标题。
服务器代码:
if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
Meteor.methods({
getTitle: function(url) {
var response = Meteor.http.call("GET", url);
return response;
}
});
这是一个客户端代码:
Template.new_bookmark.events({
// add new bookmark
'keyup #add-bookmark' : function(e,t) {
if(e.which === 13)
{
var url = String(e.target.value || "");
if(url) {
Meteor.call("getTitle", url, function(err, response) {
var url_title = response.content.match(/<title[^>]*>([^<]+)<\/title>/)[1];
var timestamp = new Date().getTime();
bookmarks.insert({Name:url_title,URL:url,tags:["empty"], Timestamp: timestamp});
});
}
}
}
});
如果用户在#add-bookmark字段中按“enter”,我会获得字段值并将其传递给server方法。 sever方法返回页面HTML源代码,我在客户端解析它,获取标题并将其存储在我的集合中。