无法通过feather.js中的查找功能将参数传递给服务挂钩

时间:2018-08-11 12:24:12

标签: javascript javascript-objects feathersjs feathers-hook

Featherjs查找服务无法通过查找功能传递额外的参数。在下面找到将额外的参数数据传递给服务的服务。 但无法在服务挂钩上获得该值。

客户代码:

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


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

服务器代码(服务挂钩):

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

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

    return context;
  };
};

服务器未接收到参数数据->             params:{ name:'sam' }

服务器/服务挂钩上的输出:

Client Param data -->undefined

1 个答案:

答案 0 :(得分:0)

出于安全原因,客户端和服务器之间仅传递params.query。通常,除非保证只获得几条(少于100条)记录,否则我建议您不要让客户端禁用分页。否则,具有很多记录的请求会在双方上引起重大问题。

如果仍然需要它,可以使用disablePagination钩子,如果想禁用分页,可以将$limit设置为-1

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