Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
meteor中路由器上调用服务器端方法_Meteor_Iron Router - Fatal编程技术网

meteor中路由器上调用服务器端方法

meteor中路由器上调用服务器端方法,meteor,iron-router,Meteor,Iron Router,我有一条路线,上面写着like/video/:\u id/:slug 现在在这条路线上,我想从_id获取视频url,现在我想取消该url,我想将该url作为源发送到html中的视频元素 我试着像下面一样,但它不工作 this.route("video",{ path:'/video/:_id/:slug', waitOn: function() { Meteor.subscribe('singleVideo', this.params._id);

我有一条路线,上面写着like/video/:\u id/:slug

现在在这条路线上,我想从_id获取视频url,现在我想取消该url,我想将该url作为源发送到html中的视频元素

我试着像下面一样,但它不工作

this.route("video",{
      path:'/video/:_id/:slug',
       waitOn: function() {
         Meteor.subscribe('singleVideo', this.params._id);

      },
      onBeforeAction: function () {

      },
      data:function(){
            Session.set("currentVideoId",this.params._id);
            var video;
            video= Videos.findOne({_id: this.params._id});
            Meteor.call("videoData",video.videourl,function(er,da){
              Session.set('vurl',da);
          });
            console.log(video);
            return {
              video:video
            };
      },
在html中

<video id="videoId" class="video-js vjs-default-skin vjs-big-play-centered"   
              controls  width="720" height="480"
              poster="{{video.thumbs}}">
             <source  type='video/mp4' src="{{uurl}}" />
             <!-- <source  type='video/mp4'  /> -->
        </video>
我知道这是一种不好的做法,有没有标准的做法,因为这是行不通的 我的服务器方法

 page.open(url, function (status) {
                page.getContent(function(content) {

                    var $ = cheerio.load(content);
                    var mp4Link = $('#xvideos_pic > a').attr('href');
                    console.log(mp4Link);
                     fut.return(mp4Link);
                });
            });
             return fut.wait();

有什么建议吗?

如果你在控制台中执行session.get vurl,你有什么建议吗?是的,首先我得到了eror,然后得到了vurl。你会得到错误,因为加载页面时没有视频的url。之后,您会得到url,但它不会重新加载视频。您需要在获取url后才能加载它。也许只有在你有了url后才将视频html添加到页面中才能解决这个问题。在等待答复时显示加载或其他内容X,是的,已经这样做了,因为刮板机需要一些时间,旋转器显示的时间比平常多
 page.open(url, function (status) {
                page.getContent(function(content) {

                    var $ = cheerio.load(content);
                    var mp4Link = $('#xvideos_pic > a').attr('href');
                    console.log(mp4Link);
                     fut.return(mp4Link);
                });
            });
             return fut.wait();