我希望能够根据相关模型的属性进行过滤。例如,我有一个带有 Building 对象的 Class 对象。我想获得在某个建筑物中进行的课程列表。
这个过滤器
{
"include":"building",
"scope":{
"where":{
"name":"warehouse"
}
}
}
Run Code Online (Sandbox Code Playgroud)
返回所有类,但仅包括名称为“仓库”的建筑。我想要的是将建筑物名称的 where 子句应用于整个过滤器,以便我只在建筑物具有该名称时才获取该类。
有什么办法可以做我想做的事吗?
谢谢!
使用环回,我使用 REST 连接器创建了到现有 API 的连接,该连接运行良好。但是,我想传递来自客户端的 oAuth 令牌。
我可以通过ctx.req.headers.authorization从Model.beforeRemote方法中抓取来获取 oAuth 令牌,但似乎无法找到将它作为新标头传递给 REST 连接器的方法。
我尝试了几件事:
Model.observe(但这似乎不会用 REST 连接器触发)。任何想法表示赞赏。
我正在为一家公司开发一个私人 Web 应用程序,他们要求我使用他们的服务器来托管它。我想阻止他们访问源代码。我怎样才能做到这一点?他们的服务器正在运行 debian 并且他们拥有 root 访问权限。
我找到了一些解决方案,比如将应用程序打包到一个可执行文件中,但该应用程序有很多依赖项,我使用的是 loopback.io 框架;这使得包装非常困难..
任何不同的解决方案?
我正在开发 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?
谢谢
使用 Loopback 框架,我想在Item编辑之前执行一些操作,因此我正在尝试此操作但无法将其绑定到更新挂钩。
Item.beforeRemote("update", function(ctx,myitem,next) {
console.log("inside update");
});
Run Code Online (Sandbox Code Playgroud)
相反,更新我与尝试updateAttributes,updateById,创建但没有工作。这种 beforeRemote 钩子适用于 create on POST,但在编辑期间无法通过PUT获取它。留给我的最后一个解决方案是再次检查带有通配符钩子的 methodString,但我想知道是否有任何我找不到的文档记录。
Item.beforeRemote("**",function(ctx,instance,next){
console.log("inside update");
});
Run Code Online (Sandbox Code Playgroud) 我创建了一个 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 方法)。
如何保证环回模型中多个字段组合的唯一性。就像下面是模型组织一样,我有两个字段名称和联系人,我希望这两个字段的组合在数据库中是唯一的。
例如:- 在创建组织时,两个记录在“名称”字段中可以具有相同的值,但“名称”和“联系人”字段的值的组合 对于每个记录应该是唯一的,以便创建它。
`{
"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) 我对环回中的 API 进行了压力测试,该 API 使用 Babel 进行了转换。然而,在这些较长的“冒烟”测试中,我们看到堆分析中的 require 缓存增长得非常大(高达 1GB)并且没有得到 GCd。
我知道在删除最后一个引用之前,需要缓存不会 GC,但是如果我一遍又一遍地调用相同的方法集,为什么它会继续增长?
这可能是 Babel 6 或 NodeJS 4.4.3 的问题吗?
这是显示堆转储的屏幕截图
我收到以下错误:
(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 数组中发送。这两个脚本并行运行。这段代码可能有什么问题?我看到一些解决方案要求设置最大侦听器,但我没有做对。有什么办法可以修复内存泄漏错误。任何帮助,将不胜感激!提前致谢。
在基于模式的多租户应用程序中,通常有一个具有多个模式的数据库。一种模式是存储通用应用程序数据的主要模式,一种用于应用程序的每个租户。每次有新客户注册到系统时,都会在数据库中自动创建一个新的隔离模式。这意味着,模式是在运行时创建的,并且事先不知道。客户的模式是根据客户的域命名的。当请求进入系统时,用户将得到验证并使用主模式上的数据选择模式。然后大多数/所有后续数据库操作都转到租户特定的模式。如您所见,我们要使用的模式仅在运行时才知道。
如何在运行时选择模式?我们正在使用 postgres 连接器。我们应该能够在运行时切换模式。
另一个问题是如何为不同的租户运行迁移?
db-schema 需要以请求范围的方式设置,以避免为可能属于其他客户的其他请求设置架构。为整个连接设置架构不是一个选项。
loopbackjs ×10
node.js ×4
strongloop ×4
babeljs ×1
caching ×1
datasource ×1
loopback4 ×1
memory-leaks ×1
node-apn ×1
node-gcm ×1
oauth ×1
rest ×1
url ×1