Как добавить больше параметров в сервисный метод 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);
});
Другие вопросы по тегам