自定义 cli 生成的 feathersjs 服务

Customize cli-generated feathersjs services

我正在写一个 api 来尝试 featherjs 及其 mongoose 适配器。我希望我的 GET /books/ 端点仅 return 本书 private 属性设置为 false。我应该使用 before 挂钩吗?如果是这样,我如何防止用户在我的端点中进行 运行 自定义查询?我应该手动清空 params 对象吗?

您需要在 之前创建一个 挂钩 books.hooks.js

const books_qry = require('../../hooks/books_qry');

module.exports = {
  before: {
   all: [],
   find: [books_qry()],
   ...

创建/src/hooks/books_qry.js

module.exports = function () {
  return function (context) {
     //You have 2 choices to change the context.params.query

     //overwrite any request for a custom query
     context.params.query =  { private: false };

     //or add a query param to the request for a custom query
     context.params.query.private = false

     //check the updated context.params.query 
     console.log(context.params.query); 

     return context;
  }
}

Select您需要的选择之一。由于我目前从未使用过 mongoose,请查看文档以创建有效查询(顺便说一句,上面的示例适用于 mongodb 适配器)