2017-01-30 10 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)'のようなメソッドを作成しようとしています。しかし、私はどのようにfeathersがこれらの3つのパラメータをサポートさせるか分からない。 –

答えて

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); 
}); 
正確に何をしようとする
関連する問題