0

ユーザーが (都市から別の都市への) 旅行を保存し、それを mongo コレクションに保存する前に、私のアプリは mapquest api から旅行の距離と時間を取得する必要があります。

HTTP.call をどこに、どのように配置しますか? サーバ側 ?クライアント側 ?

4

1 に答える 1

1
  1. http モジュールをインストールします。

    流星追加 http

  2. 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 ソースを返し、それをクライアントで解析し、タイトルを取得してコレクションに保存します。

于 2013-10-11T05:21:08.863 に答える