首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Featherjs序列化数据库适配器服务方法

Featherjs序列化数据库适配器服务方法
EN

Stack Overflow用户
提问于 2018-02-04 02:53:29
回答 1查看 235关注 0票数 1

我想知道在使用sequelize数据库适配器(或任何其他适配器)时,如何从服务中删除一些服务方法(端点)。

代码语言:javascript
复制
// Initializes the `society` service on path `/society`
const createService = require('feathers-sequelize');
const createModel = require('../../models/society.model');
const hooks = require('./society.hooks');

module.exports = function (app) {
  const Model = createModel(app);
  const paginate = app.get('paginate');

  const options = {
    name: 'society',
    Model,
    paginate
  };

  // Initialize our service with any options it requires
  app.use('/societies', createService(options));

  // Get our initialized service so that we can register hooks and filters
  const service = app.service('societies');

  service.hooks(hooks);
};

这里,所有的服务方法:get,patch,post,remove都是可用的--我只想要getfind

一种方法是使用钩子停止请求,但这是一种肮脏的方式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-05 01:08:44

钩子是羽毛如何控制这样的东西的。您可以通过检查是否设置了params.provider来阻止外部访问:

代码语言:javascript
复制
const { Forbidden } = require('@feathersjs/errors');

const disable = context => {
  if(context.params.provider) {
    throw new Forbidden('You can not do this');
  }
};

app.service('societies').hooks({
  before: {
    get: disable,
    patch: disable,
    update: disable,
    remove: disable
  }
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48600848

复制
相关文章

相似问题

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