我查看了此链接https://docs.feathersjs.com/real-time/primus.html以设置服务方法的其他参数,但我还没弄清楚如何操作。
以下是我的服务类:
create(id, shellId, params) {
...
}
以下是primus配置:
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 :(得分:0)
您只能使用official service methods及其签名,如果create
整个数据对象为data
,其他参数为params
。您的服务类create
看起来像这样:
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使用它:
primus.send('myservice::create', {
id: 'test',
shellId: 'testing'
}, (error, data) => {
console.log('Returned data', data);
});