如何使用 primus 在 feathersjs 服务方法上添加更多参数
How to add more parameters on feathersjs service method with primus
我检查了此 link https://docs.feathersjs.com/real-time/primus.html 以在服务方法上设置其他参数,但我不知道如何操作。
以下是我的服务class:
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
is undefined 错误。在这种情况下,如何在服务 class 上添加更多参数?
您只能使用 official service methods 及其签名,在 create
的情况下,整个数据对象是 data
,附加参数是 params
。您的服务 class 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 or a direct Primus connection 像这样使用它:
primus.send('myservice::create', {
id: 'test',
shellId: 'testing'
}, (error, data) => {
console.log('Returned data', data);
});
我检查了此 link https://docs.feathersjs.com/real-time/primus.html 以在服务方法上设置其他参数,但我不知道如何操作。
以下是我的服务class:
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
is undefined 错误。在这种情况下,如何在服务 class 上添加更多参数?
您只能使用 official service methods 及其签名,在 create
的情况下,整个数据对象是 data
,附加参数是 params
。您的服务 class 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 or a direct Primus connection 像这样使用它:
primus.send('myservice::create', {
id: 'test',
shellId: 'testing'
}, (error, data) => {
console.log('Returned data', data);
});