ユーザーが (都市から別の都市への) 旅行を保存し、それを mongo コレクションに保存する前に、私のアプリは mapquest api から旅行の距離と時間を取得する必要があります。
HTTP.call をどこに、どのように配置しますか? サーバ側 ?クライアント側 ?
ユーザーが (都市から別の都市への) 旅行を保存し、それを mongo コレクションに保存する前に、私のアプリは mapquest api から旅行の距離と時間を取得する必要があります。
HTTP.call をどこに、どのように配置しますか? サーバ側 ?クライアント側 ?
http モジュールをインストールします。
流星追加 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」を押すと、フィールド値を取得してサーバー メソッドに渡します。サーバー メソッドはページの HTML ソースを返し、それをクライアントで解析し、タイトルを取得してコレクションに保存します。