Как добавить больше параметров в сервисный метод feathersjs с помощью primus
Я проверил эту ссылку https://docs.feathersjs.com/real-time/primus.html чтобы настроить дополнительные параметры метода обслуживания, но я не понял, как это сделать.
Ниже мой класс обслуживания:
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
неопределенная ошибка Как добавить больше параметров класса обслуживания в этом случае?
1 ответ
Вы можете использовать только официальные методы обслуживания и их подписи, в случае 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 или прямое соединение Primus, например:
primus.send('myservice::create', {
id: 'test',
shellId: 'testing'
}, (error, data) => {
console.log('Returned data', data);
});