在Loopback文档初始化应用程序时,有两件事:
第一:
Loopback.boot()根据json定义文件或给定选项加载数据源和模型,然后从models /和boot /目录加载所有js文件
然后 :
"不要在多个文件中使用app.boot()和app.model(name,config)进行组合,因为它可能导致模型由于竞争条件而未定义.为避免这种情况,请使用app.boot()确保所有模型作为模型定义的一部分传递."
这两者似乎不矛盾吗?
我有许多模型要定义,我不想在一个巨大的json文件中定义,因此想要在js每个模型中放置一个文件,models/在启动时加载所述目录.
我目前所做的是定义一个模型,models/ExampleModel.js如下所示:
var properties = {
fieldOne: { type: String, required: true },
otherField: { type: Number }
};
var options = {
relations: {
collections: {
type: "belongsTo",
model: "user"
}
}
};
var Model = require('loopback').Model;
module.exports = Model.extend('ExampleModel', properties, options);
Run Code Online (Sandbox Code Playgroud)
问题是:在期间boot(),模型已加载,但未附加到应用程序或任何数据源.它没有暴露给REST API.
我尝试了一个小的补充,models.json以在应用程序中启用该模型:
"examplemodel": {
"options": …Run Code Online (Sandbox Code Playgroud) 是否可以在Loopback的远程方法中访问当前用户的角色?
我试图允许远程方法使用where过滤器和当前userId返回基于查找的数据子集,但在admin用户的情况下,我只想返回一整套数据.
所以我一直在尝试获取当前用户的角色列表.但我正在努力使Role.getRoles()返回除以下之外的任何东西:
[ '$unauthenticated', '$everyone' ]
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上下文loopback.getCurrentContext()和传递给beforeRemote方法的上下文,我尝试过ACL.checkAccessForContext().
任何帮助,将不胜感激.
我们使用LoopBack REST框架来公开我们的数据库(和业务逻辑).我们需要允许客户在数据库(单租户和多租户)中创建可通过REST端点访问的自定义表.所有客户都需要使用相同的公共(生产)REST端点,这些端点将在多个服务器上公开.但是,只有创建它们的客户才能访问自定义表和关联的REST端点.这意味着我们无法将自定义表的模型写入光盘.我们需要能够在生产REST端点的上下文中动态创建实际的REST端点.
问题:我们如何在代码中动态创建自定义REST端点(动态)而无需将模型写入光盘上的JSON文件?
我是Node.js领域的新手,并已使用StrongLoop在Heroku(免费)上运行了一个应用程序。我设置了heroku postgresql插件(免费),并尝试将数据源添加到StrongLoop的arc composer UI中。此UI更新server / datasources.json。当我尝试连接到数据源时,出现此错误:
no pg_hba.conf entry for host "X.X.X.X", user "myUser", database "mydb", SSL off
Run Code Online (Sandbox Code Playgroud)
我知道问题一定出在postgres上设置SSL。最接近的StrongLoop文档并未对此进行详细讨论:https ://strongloop.com/strongblog/postgresql-node-js-apis-loopback-connector/ ...因为我使用的是StrongLoop而不是简单的Node.js, Heroku的文档也使我缺乏https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-node-js。我对从这里开始到底需要做什么感到困惑。
我有相当简单的新闻提要类型JSON数据,可以使用车把进行操作。因此,如果在免费套餐上存在问题,我可以接受其他免费建议进行设置。我感谢您的帮助。
编辑datasources.json:
{"db":{"name":"db","connector":"memory"},
"mydb":{
"host":"myhost",
"port":####,
"url":"myamazonawsurl:####/mydbname",
"database":"mydbname",
"password":"mypw",
"name":"mydatasourcename",
"ssl":true,
"user":"myuser",
"connector":"postgresql"}}
Run Code Online (Sandbox Code Playgroud)
更多错误详细信息:
error: no pg_hba.conf entry for host "X.X.X.X", user "myuser", database "mydb", SSL off at
Connection.parseE (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:539:11) at
Connection.parseMessage (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:366:17) at
Socket.<anonymous> (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:105:22) at
Socket.emit (events.js:107:17) at readableAddChunk (_stream_readable.js:163:16) at
Socket.Readable.push (_stream_readable.js:126:10)
Run Code Online (Sandbox Code Playgroud) 在我的环回应用程序中,一旦我创建了访问令牌(登录后),它在我的应用程序中仍然有效,除非应用程序停止.当应用程序重新启动时,它不允许以前的访问令牌.即使在重新启动应用程序后,如何才能使先前的访问令牌验证?
如何在环回中创建动态模型,而不是对所有模型使用命令“lb 模型”。
例如:如果我想创建 30 个具有几乎相同属性的模型,将无法一次又一次地创建所有 30 个模型和那些相应的属性。
是否可以创建模型并使用回送将其迭代到另一个模型。请分享您的答案。
我试图使用strongloop loopback sdk 2.0.我试图使用以下代码https://github.com/strongloop/loopback-component-push/tree/master/example/server这是loopback version 1.7.0.但当我尝试编译时version 2.0,它会抛出我的错误
错误:model-config.json中的数据采用不受支持的1.x格式.
我也尝试过强循环教程,但它仍然不起作用.任何人都有关于如何使用PUSH通知的建议或示例代码loopback 2.0?
我查看了docs,SO和interwebs,无法找到一个示例,显示如何使用Strongloop后端和使用slc生成的AngularJS API的应用程序更改用户的密码.非常欣赏正确方向的指针.
更新 我不是在寻找重置密码,忘记密码的情况.我正在寻找一种合法的方式来改变旧传递以及新传递需要提供的位置,并且在设置新传递之前将验证旧传递.
我是StrongLoop Arc的新手,并尝试简单地设置数据源(一个mysql数据库),然后从该数据源派生模型.我使用Arc gui上的按钮启动AppController运行,然后访问localhost:3000/explorerurl以查看生成的api.不幸的是,我刚收到消息:
fetching resource list: http://localhost:3000/explorer/swagger.json
Run Code Online (Sandbox Code Playgroud)
在浏览器中(OS X上的Safari).如果我调出浏览器的错误控制台,我会看到:
TypeError: Swagger 2.0 does not support null types([object Object]).
Run Code Online (Sandbox Code Playgroud)
谁能提供一些可能出错的洞察力?我在浏览器的顶部看到没有设置令牌.在我看到任何东西之前,是否需要以某种方式设置它?
我有以下几点:
nodemon server/server.js --watch common --watch serve
Run Code Online (Sandbox Code Playgroud)
这根本不起作用。好吧,也许是因为server/server.js不存在!所以我尝试了以下方法:
nodemon index.js --watch common --watch serve
Run Code Online (Sandbox Code Playgroud)
仍然没有用。我也改变common了src。那也不起作用。请帮我解决一下这个。
strongloop ×10
loopbackjs ×5
node.js ×3
javascript ×2
access-token ×1
angularjs ×1
dynamic ×1
endpoint ×1
heroku ×1
loopback ×1
model ×1
postgresql ×1
rest ×1
ssl ×1