2016-10-05 5 views
0

나는 유성에 x- 레이를 사용하려하지만 운이 없다. 여기 유성 앱에서 엑스레이를 사용하려면 어떻게해야합니까?

내가 (이 기본 노드 응용 프로그램에서 잘 작동)

import Xray from 'x-ray'; 

var xray = new Xray(); 

xray('http://reddit.com/r/meteor/', '.title', 
[{ 
    title: '', 
    href: '@href' 
}] 
) 
    .write('./result.json'); 
+0

어떤 패키지를 사용하고 있습니까? X 선에 대한 npm 패키지 또는 유성에 대한 래퍼 패키지입니까? – Ankit

+0

시도 npm 및 https://atmospherejs.com/lai/meteor-xray –

답변

2

나는, 그것을 5 개월 전이기 때문에 당신이 그것을 알아 냈 내가이 질문을 주위에 내 머리를했다 희망하고 생각 테스트있어 예입니다 그런 식으로.

대기 패키지는 더 이상 유지 관리하지 않으므로 사용하지 마십시오.

$meteor npm install --save x-ray (https://github.com/lapwinglabs/x-ray)

가 그럼 그냥 서버 측에 Meteor.method을 생성하고 클라이언트 측에 전화.

(https://docs.meteor.com/api/methods.html)

// Server Side 

import Xray from 'x-ray' 

Meteor.methods({ 
    scrap:function(){ 
    var x = Xray(); 
    console.log('Is scrapping'); 
    x('http://google.com', 'title')(function(err, title) { 
     console.log(title) // Google 
    }) 
    } 
}); 

그런 다음

// Client Side 

Meteor.apply('scrap', function(error, result) { 
    console.log(error, result); 
    console.log('Scrap is bussy'); 
}) 

건배

0

실제로 이전 게시물에서 코드는 서버 측에서 X 선 함수를 호출하지만 반환하지 않습니다 클라이언트에게 결과.

method.js (서버) :

import { Meteor } from 'meteor/meteor'; 
import Xray from 'x-ray'; 

Meteor.methods({ 
    async 'scrape.test'() { 
    let x = Xray(), 
     scraper; 
    function scrap() { 
     return new Promise((r, e) => { 
     x('http://google.com', 'title')(function(err, title) { 
      if (err) e(err); 
      if (title) r(title); 
     }); 
     }); 
    } 
    try { 
     return await scrap(); 
    } catch (error) { 
     throw new Meteor.Error('500', error); 
    } 
    } 
}); 

client.js :

/당신이 서버에서 클라이언트로 결과를 반환 할 수 있습니다 (ES7)을 기다린 약속 비동기 사용

Meteor.call('scrape.test', (error, result) => { 
    if (error) console.log('error', error); 
    console.log('result', result); 
}); 

환호

관련 문제