2017-01-30 6 views
0

이 링크 https://docs.feathersjs.com/real-time/primus.html을 사용하여 서비스 메소드에 대한 추가 매개 변수를 설정했는데이를 수행하는 방법을 찾지 못했습니다. 아래 feathersjs 서비스 메소드에 더 많은 매개 변수를 추가하는 방법

create(id, shellId, params) { 
    ... 

    } 

은 프리머스 구성입니다 : 아래

내 서비스 클래스 설명서에서

app.configure(primus({ 
    transformer: 'websockets', 
    timeout: false 
    }, (primus) => { 
    primus.library(); 
    primus.save(path.join(__dirname, '../public/dist/primus.js')); 
    })) 

, 그것은 다음과 같이 언급한다 :

primus.use('todos::create', function(socket, done){ 
    // Exposing a request property to services and hooks 
    socket.request.feathers.referrer = socket.request.referrer; 
    done(); 
    }); 

을하지만, 나는 이 기능이 무엇을하는지 확신하지 못합니다. 또한 위의 코드를 응용 프로그램에 추가하려고 시도하면 socket.request은 정의되지 않은 오류가 발생합니다. 이 경우 서비스 클래스에 매개 변수를 추가하는 방법은 무엇입니까?

+0

? 그 예는 [Primus 미들웨어] (https://github.com/primus/primus#primususename-fn-options-index)이지만, 당신이 찾고있는 것을 잘 모르겠습니다. – Daff

+0

'create (id, shellId, params)'와 같은 메소드를 생성하려고합니다. 그러나 깃털을 세 가지 매개 변수를 지원하는 방법을 모르겠습니다. –

답변

0

및 해당 서명 만 사용할 수 있습니다. create의 경우 전체 데이터 개체의 경우 data이고 추가 매개 변수의 경우 params입니다. 클라이언트에

class MyService { 
    create(data, params) { 
    const { shellId, id } = data; 
    // Do something here 

    return Promise.resolve({ /* some data here */ }); 
    } 
} 

app.use('/myservice', new MyService()); 

당신이 Feathers client 또는이 같은 direct Primus connection를 통해 사용할 수 있습니다 : 귀하의 서비스 클래스 create은 다음과 같이 보이는

primus.send('myservice::create', { 
    id: 'test', 
    shellId: 'testing' 
}, (error, data) => { 
    console.log('Returned data', data); 
}); 
정확히 당신이 뭘 하려는지