Meteor.Js:在模板中使用异步流星方法

时间:2015-01-20 02:23:19

标签: javascript asynchronous meteor

在我的智慧结束时。

我试图达到的目标看起来像这样:

  • 从客户端
  • 将网址传递到服务器
  • 在服务器上,发出HTTP请求以获取所述网址的标记
  • 然后找到标题
  • og:image属性的相应网址

我可以找到我在服务器上寻找的属性console.log,但我很难将其传递给客户端,然后传递给视图。谁能告诉我我做错了什么?

//-----------
//Client code
//-----------

Template.postShow.helpers({
  postImage: (url) ->
    Meteor.call "getRemoteImage", url, (err, result) ->
      if err
        // logs nothing
        console.log err
      else
        // logs nothing
        console.log result
        // sets nothing
        Session.set "myData", result
  theImage: () ->
    return Session.get "myData"
})


//------------
//Server Code:
//------------

function getArticleImage(url, callback){
  return Meteor.http.get(url, function(err, data){
        if (err){
          return err
        }
        else{

          $ = cheerio.load(data.content)
          imgURL = $("meta[property='og:image']").attr('content')
          //logs what I'm looking for
          console.log("server: ", imgURL)
          return imgURL
        }
      })
}

var getArticleImageSync = Meteor.wrapAsync(getArticleImage)

Meteor.methods({
  getRemoteImage: function(url){
    var result = getArticleImageSync(url)
    return result
  }
})


//--------------
// Template Code
//--------------

 <template name="postShow">
  <!-- the postImage function doesnt put anything in the view on it's own. it works in concert with the theImage function -->

  {{postImage url}}
  <p>{{theImage}}</p>

</template>

0 个答案:

没有答案