loopbackjs – Loopback:如何将用户查询隔离到特定数据源?

假设我有两个用户,A和B,分别是ID 1和2.此外,我们假设我配置了两个数据源:X和Y.

我如何将用户A发出的所有查询隔离到数据源X,并且对于某些给定的远程方法,我将如何通过B到Y隔离?例如,假设A想通过API为某些模型运行’find’ – 我怎样才能确保A得到的唯一结果是那些可通过数据源X访问的结果?

最佳答案 我不确定我完全理解为什么你会根据当前用户决定一个数据源,但无论如何,我不确定你能用LoopBack做到这一点……至少,不容易. LoopBack是一个模型驱动的框架 – 一切都源于模型.因此,所有API端点都通过模型(尽管您可以设置自定义路由).每个模型都连接到一个数据源.

因此,如果我点击/ api / Widget / 13,就无法在两个数据源之间进行findById()调用切换,它将始终触及模型所连接的任何数据源.

好的,所有人都说,我看到的解决方案是:

> Create a “dispatcher”并让那个模型做适当的事情.
>在现有模型上创建一个custom remote method,并在那里做出决策,并在正确的数据源上进行查找等.

在任何一种情况下,它都不是直截了当的,也不是内置的.仅供参考,如果您需要获取数据源,可以从LoopBack应用程序对象访问它:MyModel.app.datasources.ds1

点赞