目前正在测试一系列框架以确定我公司未来使用的良好候选者,LoopBack几乎完美地满足了我的需求引起了我的注意.
但是,我觉得他们的ACL模型在某些情况下非常有限.让我们采用以下用例:在协作旅行管理网站上,用户可以创建和/或加入公共旅行.我们假设以下API:
/Travels 列出用户拥有的所有旅行/Travels/public 列出所有公共旅行/Travels/{id}/join 使用给定的ID加入Travel构建这样的API是否需要重新发明轮子?还是要实现一些中间件?
每个字段的ACL也是如此.假设您有一些清单项目,一些是手动添加的,另一些是自动生成的.除了更改"完成"字段外,您能否仅在自动阻止WRITE操作?
我在c9中使用loopback,基本上我有2个模型 - >文件(上传文件) - > user(有一个远程方法更新从客户端获取的值)我想先上传文件并获取上传的文件名为它将被远程方法用于在db(monodb)中更新.如何在没有模型关系的用户模型中访问文件模型中的filename属性.我在"user.js"中尝试了以下代码
`var loopback=require('loopback');
var file=loopback.getModel('file');
console.log(file.name);`
Run Code Online (Sandbox Code Playgroud)
但它只显示"未定义".这是错的吗?如果是这样,访问文件名的方式是什么?或者我应该使用挂钩?
我们使用LoopBack REST框架来公开我们的数据库(和业务逻辑).我们需要允许客户在数据库(单租户和多租户)中创建可通过REST端点访问的自定义表.所有客户都需要使用相同的公共(生产)REST端点,这些端点将在多个服务器上公开.但是,只有创建它们的客户才能访问自定义表和关联的REST端点.这意味着我们无法将自定义表的模型写入光盘.我们需要能够在生产REST端点的上下文中动态创建实际的REST端点.
问题:我们如何在代码中动态创建自定义REST端点(动态)而无需将模型写入光盘上的JSON文件?
我正在使用基于expressjs的loopback.io,我试图添加port作为第一个参数,app.listen如下所示:
// server.js
app.start = function() {
// start the web server
return app.listen(80, function() {
app.emit('started');
console.log('Web server listening at: %s', app.get('url'));
});
};
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我一直在寻找这个,但我还没有找到解决方案.
您好我们已经尝试在运行ubuntu 14.4的几台不同服务器上安装strongloop,我们每次都会遇到同样的问题.它在同一步骤失败了.我们完全卸载了节点和npm,并按照有关在ubuntu数字海洋上安装的指南进行操作.我们甚至创建了一个预先安装了节点的新Droplet.没运气.创建了一个带有centos的液滴并遵循指示.必须安装但运行slc loopback时我们得到一个缺少模块错误.
终端响应`npm install -g strongloop
> utf-8-validate@1.2.1 install /usr/lib/node_modules/strongloop/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.40"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/lib/node_modules/strongloop/node_modules/ws/node_modules/utf-8-validate/.node-gyp"
make: Entering directory `/usr/lib/node_modules/strongloop/node_modules/ws/node_modules/utf-8-validate/build'
CXX(target) Release/obj.target/validation/src/validation.o
SOLINK_MODULE(target) Release/obj.target/validation.node
SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
COPY Release/validation.node
make: Leaving directory `/usr/lib/node_modules/strongloop/node_modules/ws/node_modules/utf-8-validate/build'
> heapdump@0.3.7 install /usr/lib/node_modules/strongloop/node_modules/strong-supervisor/node_modules/heapdump
> node-gyp rebuild
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.40"
gyp …Run Code Online (Sandbox Code Playgroud) 我正在学习LoopBack(又名Strongloop).当我去https://strongloop.com/它告诉我安装npm install -g apiconnect.所以,我正在学习带有脚手架的LoopBackapic loopback
一旦我得到一个入门项目apic loopback,并添加一个模型apic create --type model,看起来我定义我的Swagger的定义会自动更新(./definitions/server.yaml).因此,我可以在运行时探索这些API apic edit.
但是,当我编辑模型以扩展我的API时,如LoopBack文档(https://docs.strongloop.com/display/public/LB/Extend+your+API)所示,我没有看到更新的API文档...但是从看起来像"资源管理器"的文档中应该选择新的API端点.
我在这里错过了什么?当我创建手动API扩展时,是否应该运行一个swagger命令?或许这可能是代码中的一些神奇的评论?
结论:当我使用apicIBM推出时,如何让我的环回API自定义/扩展显示在资源管理器中?我必须使用apic create --type api吗?在我自定义API时,有没有办法让资源管理器接收我的更改?这东西究竟有多神奇吗?
我创建了一个简单的文件上传应用程序环回.应用程序客户端我使用简单的html和Java Script代码.
我用ajax调用调用loopback api,这是Java脚本代码 -
$('#upload-input').on('change', function () {
var files = $(this).get(0).files;
if (files.length > 0) {
// One or more files selected, process the file upload
var form = new FormData();
for (var index = 0; index < files.length; index++) {
var file = files[index];
form.append('Uploded Files', file, file.name);
}
$.ajax({
url: 'api/fileupload/upload',
type: 'POST',
data: form,
processData: false,
contentType: false,
success: function (data) {
console.log('upload successful!');
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
但是我们没有在服务器端获取文件.在服务器端,我们创建了一个Loopback api.
可以帮助我们,如何使用loopback api上传文件.
这是我的loopback api代码 - …
我正在使用NodeJS 请求-简化的HTTP客户端
我似乎在使用HTTPS网站时遇到问题,但没有得到结果。
var request = require('request');
request.post({
url: "",//your url
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
form: {
myfield: "myfieldvalue"
}
},function (response, err, body){
console.log('Body:',JSON.parse(body));
}.bind(this));
Run Code Online (Sandbox Code Playgroud)
在Postman上测试了API端点(我无法共享),我只是关闭了SSL并可以使用,如何使用请求插件执行相同操作?
在环回3中,我们可以在服务器配置中设置“ restApiRoot”,以便在api调用之前添加一些url(即'/ api')。在环回4中是否有某种方法可以做到这一点?捆绑的REST服务器的文档似乎具有端口/协议选项,但与api root无关。
loopbackjs ×10
node.js ×6
strongloop ×4
access-token ×1
acl ×1
apiconnect ×1
cloud9-ide ×1
dynamic ×1
endpoint ×1
express ×1
file-upload ×1
javascript ×1
jquery ×1
loopback ×1
model ×1
rest ×1
ubuntu ×1
updates ×1
v4l2loopback ×1