标签: loopbackjs

基于相关模型属性的环回滤波器

我希望能够根据相关模型的属性进行过滤。例如,我有一个带有 Building 对象的 Class 对象。我想获得在某个建筑物中进行的课程列表。

这个过滤器

{  
   "include":"building",
   "scope":{  
      "where":{  
         "name":"warehouse"
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

返回所有类,但仅包括名称为“仓库”的建筑。我想要的是将建筑物名称的 where 子句应用于整个过滤器,以便我只在建筑物具有该名称时才获取该类。

有什么办法可以做我想做的事吗?

谢谢!

loopbackjs

5
推荐指数
1
解决办法
3609
查看次数

loopback.io rest 连接器 - 如何传递 oAuth 令牌

使用环回,我使用 REST 连接器创建了到现有 API 的连接,该连接运行良好。但是,我想传递来自客户端的 oAuth 令牌。

我可以通过ctx.req.headers.authorizationModel.beforeRemote方法中抓取来获取 oAuth 令牌,但似乎无法找到将它作为新标头传递给 REST 连接器的方法。

我尝试了几件事:

  1. 添加一个钩子 using Model.observe(但这似乎不会用 REST 连接器触发)。
  2. 使用带有授权字段的模板 - 但无法使其正常工作。

任何想法表示赞赏。

oauth strongloop loopbackjs

5
推荐指数
1
解决办法
2408
查看次数

隐藏 Node js 应用源代码

我正在为一家公司开发一个私人 Web 应用程序,他们要求我使用他们的服务器来托管它。我想阻止他们访问源代码。我怎样才能做到这一点?他们的服务器正在运行 debian 并且他们拥有 root 访问权限。

我找到了一些解决方案,比如将应用程序打包到一个可执行文件中,但该应用程序有很多依赖项,我使用的是 loopback.io 框架;这使得包装非常困难..

任何不同的解决方案?

software-packaging node.js loopbackjs

5
推荐指数
1
解决办法
7790
查看次数

Strongloop-Loopback 查询字符串参数

我正在开发 REST api,并考虑通过使用 Loopback 框架来减少开发时间。

我喜欢这个框架的很多东西(而且它似乎符合我的需求),但我完全不喜欢这个:

http://localhost:3000/api/users?filter[where][username]=john&filter[where][email]=callback@strongloop.com
http://localhost:3000/api/users?filter={"where":{"username":"john","email":"callback@strongloop.com"}}
Run Code Online (Sandbox Code Playgroud)

如果您有一个作为 REST api 公开的模型,那么您的 url 就是这样的。对我来说,这两种选择看起来都很奇怪而且有点丑陋。当你看到这样的例子时,事情看起来就更奇怪了/cars?filter[where][miles][gt]=5000

那么,我可以以某种方式更改所有公开模型的 url 形式吗?(更传统的东西)。我真的很想要普通的查询字符串,例如:

http://localhost:3000/api/users?username=john&email=callback@strongloop.com
Run Code Online (Sandbox Code Playgroud)

他们看起来像这样,有什么原因让我应该欣赏而不是外表吗?有没有使用这种语法的 REST api?

谢谢

rest url strongloop loopbackjs

5
推荐指数
1
解决办法
3013
查看次数

用于 PUT 请求的环回 beforeRemote

使用 Loopback 框架,我想在Item编辑之前执行一些操作,因此我正在尝试此操作但无法将其绑定到更新挂钩。

  Item.beforeRemote("update", function(ctx,myitem,next) {
   console.log("inside update");
  });
Run Code Online (Sandbox Code Playgroud)

相反,更新我与尝试updateAttributesupdateById创建但没有工作。这种 beforeRemote 钩子适用于 create on POST,但在编辑期间无法通过PUT获取它。留给我的最后一个解决方案是再次检查带有通配符钩子的 methodString,但我想知道是否有任何我找不到的文档记录。

Item.beforeRemote("**",function(ctx,instance,next){
  console.log("inside update");
});
Run Code Online (Sandbox Code Playgroud)

node.js strongloop loopbackjs

5
推荐指数
2
解决办法
2774
查看次数

动态更改strongloop中模型的数据源

我创建了一个 mixin,我试图在其中覆盖所有模型的 getDataSource 方法,例如:

Model.getDataSource = function() {
   console.log('Overriding the getDataSource for model ' + Model.modelName);
   // Code to attach the new datasource based on some logic by
   // invoking Model.attachTo(datasourcename) method
}
Run Code Online (Sandbox Code Playgroud)

我创建了最初将数据源设置为“db”的模型。当我向应用程序发出请求时,它应该将数据源动态附加到模型。我不确定我在上面做错了什么,因为从来没有为我最初创建的模型调用上述方法,但它会为所有动态创建的模型调用(使用 createModel 方法)。

datasource strongloop loopbackjs

5
推荐指数
0
解决办法
774
查看次数

验证环回中模型的多个字段组合的唯一性

如何保证环回模型中多个字段组合的唯一性。就像下面是模型组织一样,我有两个字段名称和联系人,我希望这两个字段的组合在数据库中是唯一的。
例如:- 在创建组织时,两个记录在“名称”字段中可以具有相同的值,但“名称”“联系人”字段的值的组合 对于每个记录应该是唯一的,以便创建它。

`{
  "name": "Organisation",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "name": {
      "type": "string",
      "required": true
    },
    "contact": {
      "type": "number",
      "required": true
    }
}`
Run Code Online (Sandbox Code Playgroud)

loopbackjs

5
推荐指数
1
解决办法
2389
查看次数

为什么节点需要缓存填充和泄漏

我对环回中的 API 进行了压力测试,该 API 使用 Babel 进行了转换。然而,在这些较长的“冒烟”测试中,我们看到堆分析中的 require 缓存增长得非常大(高达 1GB)并且没有得到 GCd。

我知道在删除最后一个引用之前,需要缓存不会 GC,但是如果我一遍又一遍地调用相同的方法集,为什么它会继续增长?

这可能是 Babel 6 或 NodeJS 4.4.3 的问题吗?

这是显示堆转储的屏幕截图

在此处输入图片说明

caching node.js loopbackjs babeljs

5
推荐指数
1
解决办法
473
查看次数

MaxListenersExceededWarning - 环回

我收到以下错误:

 (node:18591) MaxListenersExceededWarning: Possible EventEmitter memory 
leak detected. 11 wakeup listeners added. Use emitter.setMaxListeners() to increase limit.
Run Code Online (Sandbox Code Playgroud)

在执行发送推送通知的脚本之后。我正在使用“node-gcm”和“apn”npm 模块分别发送android 和ios 推送通知。我用于发送通知的代码是:

安卓:

async.each(tokenBatches, function (batch) {
// Assuming you already set up the sender and message
   sender.send(message, {registrationIds: batch}, function (err, result) {
    // Push failed?
    if (err) {
    // Stops executing other batches
        console.log(err);
    }
    console.log(result);
    });
});
Run Code Online (Sandbox Code Playgroud)

在这里,设备令牌作为一批 1000 个令牌传递。

IOS:

provider.send(notification, iosTokens).then((response) => {
   console.log(response);
});
Run Code Online (Sandbox Code Playgroud)

在这里,所有令牌都在 iosTokens 数组中发送。这两个脚本并行运行。这段代码可能有什么问题?我看到一些解决方案要求设置最大侦听器,但我没有做对。有什么办法可以修复内存泄漏错误。任何帮助,将不胜感激!提前致谢。

memory-leaks node.js loopbackjs node-apn node-gcm

5
推荐指数
0
解决办法
1791
查看次数

Loopback 4 中基于模式的多租户

用例

在基于模式的多租户应用程序中,通常有一个具有多个模式的数据库。一种模式是存储通用应用程序数据的主要模式,一种用于应用程序的每个租户。每次有新客户注册到系统时,都会在数据库中自动创建一个新的隔离模式。这意味着,模式是在运行时创建的,并且事先不知道。客户的模式是根据客户的域命名的。当请求进入系统时,用户将得到验证并使用主模式上的数据选择模式。然后大多数/所有后续数据库操作都转到租户特定的模式。如您所见,我们要使用的模式仅在运行时才知道。

问题

如何在运行时选择模式?我们正在使用 postgres 连接器。我们应该能够在运行时切换模式。

另一个问题是如何为不同的租户运行迁移?

笔记:

db-schema 需要以请求范围的方式设置,以避免为可能属于其他客户的其他请求设置架构。为整个连接设置架构不是一个选项。

loopbackjs loopback4

5
推荐指数
1
解决办法
738
查看次数