首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用primus在feathersjs服务方法上添加更多参数

如何使用primus在feathersjs服务方法上添加更多参数
EN

Stack Overflow用户
提问于 2017-01-31 07:13:50
回答 1查看 1.1K关注 0票数 1

我检查了这个链接https://docs.feathersjs.com/real-time/primus.html,以便在服务方法上设置额外的参数,但我不知道该怎么做。

下面是我的服务类:

代码语言:javascript
复制
create(id, shellId, params) {
     ...

  }

以下是primus配置:

代码语言:javascript
复制
 app.configure(primus({
    transformer: 'websockets',
    timeout: false
  }, (primus) => {
    primus.library();
    primus.save(path.join(__dirname, '../public/dist/primus.js'));
  }))

在手册中,它提到了如下内容:

代码语言:javascript
复制
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 is undefined错误。在这种情况下,如何在服务类上添加更多参数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-01 11:31:54

您只能使用official service methods及其签名,对于create,对于整个数据对象,它是data,对于其他参数,它是params。您的服务类create如下所示:

代码语言:javascript
复制
class MyService {
  create(data, params) {
    const { shellId, id } = data;
    // Do something here

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

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

在客户端,您可以通过Feathers clientdirect Primus connection使用它,如下所示:

代码语言:javascript
复制
primus.send('myservice::create', {
  id: 'test',
  shellId: 'testing'
}, (error, data) => {
  console.log('Returned data', data);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41947105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档