Unable to pass parameters to service hook through find function in featherjs

1.3k Views Asked by At

Featherjs find service unable to pass extra parameters through find function. In below find service passing extra params data to service. but unable to receive the value at service hook.

Client code :

return this.app.service('userlist').find({
      query: { usersIds: { "$in" : [this.user._id]} },
      paginate: false,
      params:{ name:'sam' }
    }).then(response => {


}).catch(error => {
  console.log(error);
});

Server code (Service hook ) :

module.exports = function (options = {}) { 
return async function dogetUsr (context) {
    const { data } = context;

    console.log('Client Param data -->',context.params.name);

    return context;
  };
};

params data not receiving at server --> params:{ name:'sam' }

Output at server/service hook :

Client Param data -->undefined
1

There are 1 best solutions below

2
On

For security reasons, only params.query is passed between the client and the server. In general I wouldn't recommend letting the client disable pagination unless you are guaranteed to only get a few (less than 100) records. Otherwise requests with many records can cause major issues on both sides.

If it is still something you need, you can use the disablePagination hook which lets you set the $limit to -1 if you want to disable pagination:

const { disablePagination } = require('feathers-hooks-common');
module.exports = { before: {
  find: disablePagination()
} };