我正在尝试将StrongLoop Loopback [后端]与Yeoman工作流[前端]集成,但努力将两个代码库联合起来.我知道我可以使用StrongLoop的Loopback独立开发我的"后端",并将其作为REST API公开.但是,我宁愿开发使用Loopback Angular SDK并在同一个应用程序中以编程方式连接到模型.我想知道我需要如何组织我的文件夹结构,更新我的Gruntfile.js以包括服务和构建函数的Loopback应用程序设置,并且只运行一个服务器实例进行开发(而不是"grunt serve"用于我的yeoman应用程序前端东西和"slc run"用于环回后端的东西).
我已经阅读了有关yeoman脚手架的"计划",而不是Loopback的CLI工作流程,但是他们在Github上的5个月+没有任何更新.
任何使其现在有效的指导(而不是等待开发此功能)将不胜感激.
供参考:以下是带有Grunt命令的Loopback Angular SDK说明 http://docs.strongloop.com/display/DOC/AngularJS+JavaScript+SDK
我想知道如何验证应用程序以向端点发出请求,因为我收到401错误,我已成功生成应用程序ID和appkeys,应该使用它,因为没有文档.
我npm install -g strongloop在我的Ubuntu 14.04服务器上安装了Strongloop .该slc命令不起作用.它说
The program 'slc' is currently not installed. You can install it by typing:
sudo apt-get install heimdal-multidev
如何让它运行Strongloop CLI而不是查找此包?我已将此添加到我的PATH中,但仍然无效.有任何想法吗?
其他Strongloop命令,如sl-build工作和strongloop列出npm list -g.
我有两个通过hasMany关系相关的模型.
Customer 有很多 CustomerPhones
在创建新内容时Customer,我想将相关内容CustomerPhones作为单个请求的一部分传递.这似乎是一种常见的需求,如果我想要实现的方法是错误的,那么这样做的首选方法是什么?
这是创建客户的URL: POST /api/Customers
上面url的请求将是req.body
{
"name": "Foo",
"customerPhones": [
{ "phoneNumber": "8085551234" },
{ "phoneNumber": "8085554567" }
]
}
Run Code Online (Sandbox Code Playgroud)
Loopback模型配置:
Customer.json
{
"name": "Customer",
"base": "User",
"properties": {
"name": {
"type": "string",
"required": true
}
},
"relations": {
"customerPhones": {
"type": "hasMany",
"model": "CustomerPhone",
"foreignKey": ""
}
}
}
Run Code Online (Sandbox Code Playgroud)
CustomerPhone.json
{
"name": "CustomerPhone",
"base": "PersistedModel",
"properties": {
"phoneNumber": {
"type": "string",
"required": true
},
"customerId": {
"type": "number",
"required": true …Run Code Online (Sandbox Code Playgroud) 在Loopback应用程序中,提到了内置的应用程序模型.
此页面显示 "包含具有自己的标识和与LoopBack服务器相关配置的客户端应用程序的元数据".
点击引用的页面时,它进一步详细阐述:
应用模型
使用应用程序模型管理客户端应用程序并组织其用户.
默认模型定义文件是LoopBack存储库中的common/models/application.json.
我认为该段落中的第一个链接是错误的,因为它引用了Express应用程序包装器,而不是模型的实例.
第二个链接详细说明了模型的属性.有人提到诸如所有权,领域(在用户的上下文中提到)以及各种其他设置.
应用程序模型在文档中的几个地方提到,但它并没有真正解释如何使用它.
您将如何在应用程序中访问应用程序模型?
您的应用中定义的所有属性在哪里?
你有多个应用程序实例,为什么?
希望这不是一个主观的话题,我真的只是在关于这个主题的更好的文档之后.
我想用mongoose加密类似于这个例子的字段:https://gist.github.com/kljensen/7505729
上面链接中的代码将字段映射到自定义decrypt()函数get和encrypt()函数set.
这会导致纯文本值在保存时被加密,并在检索时被解密.
如何在Loopback中覆盖模型属性的getter和setter?
使用环回,我使用 REST 连接器创建了到现有 API 的连接,该连接运行良好。但是,我想传递来自客户端的 oAuth 令牌。
我可以通过ctx.req.headers.authorization从Model.beforeRemote方法中抓取来获取 oAuth 令牌,但似乎无法找到将它作为新标头传递给 REST 连接器的方法。
我尝试了几件事:
Model.observe(但这似乎不会用 REST 连接器触发)。任何想法表示赞赏。
我们有一个Web应用程序,它使用Strongloop的LoopBack作为API和后端,以及前端的Angular,Cordova用于打包移动.来自Cordova的Web应用程序和iOS目标运行良好,但是当我们尝试为Android设备构建时,应用程序服务器无法从设备访问.更具体地说,在加载客户端应用程序并尝试登录后,设备向我的API发出POST但从未收到响应(据我所知,请求从未真正命中过服务器).
这是我到目前为止所尝试的:
access设置为origin="*"Content-Security-Policy在我的(单页)应用程序的index.html中设置了元标记,允许远程网络INTERNET在Android Manifest中正确设置了权限lb-services.jsAngular服务具有正确的API地址由于我能够在没有任何问题的情况下使用Cordova在iOS上运行我的应用程序,我认为我的Android配置必须有特定的东西.我确实遇到了一个单独的问题,即安装的插件与最新的Cordova不兼容,但删除该插件似乎已经解决了这个问题.为Android构建有什么不同可以防止这种情况发生?
编辑:
我已经转而使用Phonegap Build,希望这将是一个更简单的工作流程,但我仍然看到相同的问题..这是我正在做的白名单/ CORS配置:
index.html中的元标记:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'self' 'unsafe-inline'; script-src * 'self' 'unsafe-inline' 'unsafe-eval'">
config.xml(Phonegap Build,可识别信息已删除):
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id="..." version="1.0.0">
<name ... />
<description ... />
<author ... />
<icon src="icon.png" />
<gap:splash src="splash.png" />
<preference name='phonegap-version' value='cli-5.1.1' />
<gap:plugin name="com.indigoway.cordova.whitelist.whitelistplugin" version="1.1.1" />
</widget>
我开发了一个Loopback API,并希望将其部署到测试实例(可能是Heroku或Digital Ocean).
理解如何部署它非常复杂.似乎有很多解决方案,从StrongLoop Process Manager到普通的Node.js服务器......信息不是非常消化所以任何人都可以帮助我理解我有什么可能部署它以及什么是赞成/缺点每一个.
我正在阅读一些文档,但感觉有点迷失.来自已经部署它的人的一些意见将是伟大的,我不能是唯一一个感到困惑的人.
Strongloop Loopback是否支持更改流中的过滤?
以下内容适用于所有模型更改,但是我仅对模型部分的更改感兴趣。我可以将过滤添加到EventSource-URL吗?
var src = new EventSource('/api/mymodel/change-stream?_format=event-source');
var changes = createChangeStream(src);
changes.on('data', function(update) {
console.log("data changed...", JSON.stringify(update));
});
Run Code Online (Sandbox Code Playgroud)
谢谢
strongloop ×10
loopbackjs ×8
node.js ×3
angularjs ×2
javascript ×2
cordova ×1
eventsource ×1
gruntjs ×1
heroku ×1
loopback ×1
oauth ×1
ubuntu ×1
yeoman ×1