标签: strongloop

使用 loopback.js 和 MongoDB 自动递增

我想使用环回自动增加 mongodb 文档编号。

我在 mongo 中做了功能

 function getNextSequence(name) {
   var ret = db.counters.findAndModify(
          {
            query: { _id: name },
            update: { $inc: { seq: 1 } },
            new: true
          }
   );

   return ret.seq;
}


db.tweet.insert(
{
   "_id" : getNextSequence("userid"),
  "content": "test",
  "date": "1",
  "ownerUsername": "1",
  "ownerId": "1"
}
)
Run Code Online (Sandbox Code Playgroud)

它在 mongo shell 中工作。

但是,当我使用 loopback.js 浏览器(http://localhost:3000/explorer/)插入时,它不起作用。显示 400 错误(SytaxError)代码。

我不能在环回休息 API 中使用 mongo 函数?

我认为问题是这一行中的引号getNextSequence("userid"),

在此处输入图片说明

increment auto-increment mongodb strongloop loopbackjs

3
推荐指数
1
解决办法
4918
查看次数

如何在Strongloop中调用存储过程

我正在使用MySQLstrongloop,我有一个存储过程来交换数据

swap_XYZ('<old_abc>', '<new_new>')
Run Code Online (Sandbox Code Playgroud)

我无法在文档中找到任何示例来调用存储过程。如何调用此存储过程?提前致谢。

javascript node.js angularjs strongloop loopbackjs

3
推荐指数
1
解决办法
2766
查看次数

未找到环回 CLI lb-clean 命令 - linux

我使用“lb4 application_name”命令创建了一个环回 4 应用程序。运行“npm start”后,显示“lb-clean”命令未找到错误。我的节点版本是16.13.2,环回版本是4.0.0。

loopback strongloop

3
推荐指数
1
解决办法
2560
查看次数

LoopBack用户特定的数据过滤/访问

目前正在测试一系列框架以确定我公司未来使用的良好候选者,LoopBack几乎完美地满足了我的需求引起了我的注意.

但是,我觉得他们的ACL模型在某些情况下非常有限.让我们采用以下用例:在协作旅行管理网站上,用户可以创建和/或加入公共旅行.我们假设以下API:

  • /Travels 列出用户拥有的所有旅行
  • /Travels/public 列出所有公共旅行
  • /Travels/{id}/join 使用给定的ID加入Travel

构建这样的API是否需要重新发明轮子?还是要实现一些中间件?

每个字段的ACL也是如此.假设您有一些清单项目,一些是手动添加的,另一些是自动生成的.除了更改"完成"字段外,您能否仅在自动阻止WRITE操作?

acl node.js strongloop loopbackjs

2
推荐指数
1
解决办法
1870
查看次数

strongloop slc部署env var并发症

我一直在使用自定义init.d/app.conf脚本部署环回应用程序slc run --detach --cluster "cpu",但是我想按照建议使用strong-pm.

但我遇到了一些限制,我正在寻找有关如何复制我目前熟悉的设置的任何指导.

目前,我设置的特定应用程序的配置中server/config.local.jsserver/datasources.local.js,最重要的是PORT在该应用程序应该监听上的连接.这适用slc run于本地开发和远程部署进行暂存,我所做的就是为每个不同的应用程序设置不同的env变量:

datasources.local.js:

module.exports = {
  "mysqlDS": {
    name: "mysqlDS",
    connector: "mysql",
    host: process.env.PROTEUS_MYSQL_HOST,
    port: process.env.PROTEUS_MYSQL_PORT,
    database: process.env.PROTEUS_MYSQL_DB,
    username: process.env.PROTEUS_MYSQL_USER,
    password: process.env.PROTEUS_MYSQL_PW
  }
}
Run Code Online (Sandbox Code Playgroud)

config.local.js:

module.exports = {
  port: process.env.PROTEUS_API_PORT
}
Run Code Online (Sandbox Code Playgroud)

当我使用strong-pm进行部署时,我无法控制此端口,并且它总是设置为3000 + N,其中N仅根据部署时分配给应用程序的服务ID递增.

所以即使我部署然后设置env使用

slc ctl -C http://localhost:8701 env-set proteus-demo PROTEUS_API_PORT=3033 PROTEUS_DB=demo APP_DOMAIN=demo.domain.com
Run Code Online (Sandbox Code Playgroud)

我看到强-pm在使用新的env vars重新部署时完全忽略了PROTEUS_API_PORT:

ENV has changed, restarting
Service "1" listening on 0.0.0.0:3001
Restarting next commit Runner: commit 1/deploy/default/demo-deploy
Start Runner: commit 1/deploy/default/demo-deploy
Request …
Run Code Online (Sandbox Code Playgroud)

deployment strongloop loopbackjs

2
推荐指数
1
解决办法
758
查看次数

无法安装strongloop

您好我们已经尝试在运行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)

ubuntu node.js strongloop loopbackjs

2
推荐指数
1
解决办法
557
查看次数

LoopbackJS是否在新模型创建时自动创建createdAt和已修改字段?如何启用?

我很好奇,LB会自动创建createdAt和创建modified新模型的字段,就像RoR一样吗?LB文档说它应该,但是当我尝试创建一个新模型时,LB不会创建这些字段.这是我在MongoDB集合中创建新模型和新文档的脚本:

'use strict';

var server = require('./server');
var ds = server.dataSources.mongodb;
var collections = ['user'];


ds.automigrate(collections, function(er) {
    if (er) throw er;
    console.log('== Looback tables [' + collections + '] created in ', ds.adapter
        .name);

    server.models.user.create([{
        username: 'admin',
        password: "admin",
        email: 'admin@gmail.com',
    }], function(err, newUser) {
        if(err) {
            console.error("== Create ERROR ==:\n\r", err);
            ds.disconnect();
            process.exit(1);
        }
        console.log('== newUser ==:\n\r', newUser);
        ds.disconnect();
        process.exit();
    });
});
Run Code Online (Sandbox Code Playgroud)

这是创建的文档.不createdAtmodified字段:

 [ { username: 'admin',
    password: …
Run Code Online (Sandbox Code Playgroud)

strongloop loopbackjs

2
推荐指数
1
解决办法
1448
查看次数

Loopback acl和ownerid

我对ACL如何在环回上工作有点怀疑.

我正在关注示例https://github.com/strongloop/loopback-example-access-control

REST Api允许create调用将ownerid作为参数传递,但不进行任何验证.

因此,经过身份验证的用户可以创建项目并将ownerid设置为任何值.我认为应该只允许管理员角色设置属性.

我知道我可以放一些代码来进行验证..但我相信必须根据当前登录的用户自动设置值.我错了或者我错过了什么?

谢谢!

node.js strongloop loopbackjs

2
推荐指数
1
解决办法
462
查看次数

StrongLoop API Explorer无法使用`apic strongloop`脚手架/生成器

我正在学习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时,有没有办法让资源管理器接收我的更改?这东西究竟有多神奇吗?

strongloop loopbackjs apiconnect

2
推荐指数
1
解决办法
907
查看次数

如何将LoopBack-API-Explorer安装到现有应用程序中

我正在关注LoopBack的官方"入门"教程:https://loopback.io/doc/en/lb3/Use-API-Explorer.html

一切都很好看.但是,当在Web浏览器中打开API-Explorer时,它会给出404:

404无法获取/浏览器

这是按预期工作:http://0.0.0.0:3000 /

这将返回404状态代码:http://0.0.0.0 : 3000/explorer

是否缺少Tutorial和最新的loopback-generator之间的文档或一些不兼容性?

我完全按照教程中提到的那样完成了每一步.

也许这个名为"server/config.json"的配置文件可以提供帮助,因为我偶然发现了一个设置"legacyExplorer":false.

或者是否有必要将资源管理器安装为单独的组件?

{
  "restApiRoot": "/api",
  "host": "0.0.0.0",
  "port": 3000,
  "remoting": {
    "context": false,
    "rest": {
      "normalizeHttpPath": false,
      "xml": false
    },
    "json": {
      "strict": false,
      "limit": "100kb"
    },
    "urlencoded": {
      "extended": true,
      "limit": "100kb"
    },
    "cors": false,
    "handleErrors": false
  },
  "legacyExplorer": false
}
Run Code Online (Sandbox Code Playgroud)

loopback node.js strongloop

2
推荐指数
1
解决办法
544
查看次数