标签: loopbackjs

如何通过appId进行身份验证并键入loopback restapi

我想知道如何验证应用程序以向端点发出请求,因为我收到401错误,我已成功生成应用程序ID和appkeys,应该使用它,因为没有文档.

javascript strongloop loopbackjs

6
推荐指数
1
解决办法
929
查看次数

环回多租户数据库交换

我想在我的loopback应用程序中实现多租户.现在,我正在尝试使用中间件重新定义我的数据源,以便根据请求的域为每个请求指向我的mongodb服务器上的不同数据库.代码运行,但它似乎并没有实际更改数据源.相反,它总是使用我的datasources.json中定义的那个.

现在,这就是我在做的事情.我的所有模型都引用了"my_db",我希望每个租户在我的mongo服务器上都有一个数据库.

var dataSourceObj = {
        my_db:{
          url: process.env.MONGOLAB_URI,
          connector: "mongodb",
          name: "my_db",
          database: tenant
        }
      }

      Object.keys(dataSourceObj).forEach(function(dataSource) {

        app.dataSources[dataSource].adapter.settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].adapter.clientConfig = dataSourceObj[dataSource];
        app.dataSources[dataSource].settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].connector.settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].connector.clientConfig = dataSourceObj[dataSource];

      });
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法?这是一种多租户的愚蠢方式吗?

谢谢!

multi-tenant loopbackjs

6
推荐指数
1
解决办法
842
查看次数

与Emberjs的Strongloop

Ember Data的REST适配器以这种格式接受来自服务器的JSON:

摘自文档:http://guides.emberjs.com/v1.10.0/models/the-rest-adapter/

{
  "post": {
    "id": 1,
    "title": "Node is not omakase",
    "comments": [1, 2, 3]
  },

  "comments": [{
    "id": 1,
    "body": "But is it _lightweight_ omakase?"
  },
  {
    "id": 2,
    "body": "I for one welcome our new omakase overlords"
  },
  {
    "id": 3,
    "body": "Put me on the fast track to a delicious dinner"
  }]
}
Run Code Online (Sandbox Code Playgroud)

是否有可能从strongloop返回这种JSON格式?

ember.js strongloop loopbackjs

6
推荐指数
1
解决办法
763
查看次数

Strongloop loopback中embedsMany和hasMany之间的区别是什么

乍一看,他们似乎做同样的事情:定义一对多的关系所以为什么你会选择一个或另一个?

relationships loopbackjs

6
推荐指数
1
解决办法
1544
查看次数

如何在Strongloop Loopback框架中为模型配置两个不同的数据源?

我们的MySQL数据库是用Write集群和Read集群设置的,有没有办法设置Strongloop Loopback Model(例如User)写入MySQL Host A并从MySQL Host B读取?

strongloop loopbackjs

6
推荐指数
1
解决办法
4176
查看次数

loopback关系数据库hasManyThrough数据透视表

我似乎陷入了经典的ORM问题,并且不知道如何处理它,所以在这一点上欢迎任何帮助.

有没有办法在hasManyThrough查询上获取数据透视表?更好的是,应用一些过滤器或排序.一个典型的例子

表产品

id,title
Run Code Online (Sandbox Code Playgroud)

表类别

id,title
Run Code Online (Sandbox Code Playgroud)

table products_categories

productsId, categoriesId, orderBy, main
Run Code Online (Sandbox Code Playgroud)

因此,在上面的场景中,假设您希望获得(main = true)的所有类别的产品X,或者您希望按类别对产品类别进行排序orderBy.

现在会发生什么是第一SELECT的产品,以获得产品数据,第二SELECT对products_categories获得categoriesId和最终SELECT的类别,以获得实际的类别.理想情况下,过滤器和排序应该适用于第二SELECT

SELECT `id`,`productsId`,`categoriesId`,`orderBy`,`main` FROM `products_categories` WHERE `productsId` IN (180) WHERE main = 1 ORDER BY `orderBy` DESC
Run Code Online (Sandbox Code Playgroud)

另一个典型的例子是希望根据用户想要的订单来订购产品图像

所以你会有一个products_images表

id,image,productsID,orderBy
Run Code Online (Sandbox Code Playgroud)

你会想要的

SELECT from products_images WHERE productsId In (180) ORDER BY orderBy ASC
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?

编辑:这是中间表根据我的架构获得我需要的内容所需的关系.

Products.hasMany(Images,
    {
        as: "Images",
        "foreignKey": "productsId",
        "through": ProductsImagesItems,
        scope: function (inst, filter) {
            return {active: 1};
        }
    });
Run Code Online (Sandbox Code Playgroud)

事情是范围功能让我访问最终结果而不是中间表.

node.js strongloop loopbackjs

6
推荐指数
1
解决办法
538
查看次数

使用mySQL的LoopBack"group by"能力?

我是新手LoopBack,我似乎错过了一些东西.我听说了很多关于StrongLoopLoopBack,我觉得很难相信这不存在.

我的情况:我正在计算每种不同严重程度的事件数量.

一张表例如:

EventID | 严重

1 | 2

2 | 2

3 | 4

4 | 3

5 | 3

6 | 五

7 | 1

8 | 2

现在我想计算事件的数量并按严重程度对它们进行分组,所以我得到了类似这样的JSON:

{1:1, 2:3, 3:2, 4:1, 5:1} *(severity:count)*
Run Code Online (Sandbox Code Playgroud)

使用SQL它很简单,只需使用"SELECT severity, count(severity) FROM events GROUP BY severity".

我已经研究了一段时间了,仍然无法相信这个简单的事情无法完成LoopBack!

有解决方案吗 或者也许是一篇指向我的文章?

提前致谢!

javascript strongloop loopbackjs

6
推荐指数
1
解决办法
961
查看次数

loopback mongodb身份验证失败

我有一个空的环回应用程序,我添加了一个模型和一个mongodb数据源.

连接时,我收到以下错误:

Web server listening at: http://0.0.0.0:3000
Browse your REST API at http://0.0.0.0:3000/explorer
Connection fails:  { [MongoError: Authentication failed.]
  name: 'MongoError',
  message: 'Authentication failed.',
  ok: 0,
  code: 18,
  errmsg: 'Authentication failed.' }
It will be retried for the next request.

/media/[...]/node_modules/mongodb/lib/mongo_client.js:454
              throw err
              ^
MongoError: Authentication failed.
    at Function.MongoError.create (/media/[...]/node_modules/mongodb-core/lib/error.js:31:11)
    at /media/[...]/node_modules/mongodb-core/lib/topologies/server.js:778:66
    at Callbacks.emit (/media/[...]/node_modules/mongodb-core/lib/topologies/server.js:95:3)
    at null.messageHandler (/media/[...]/node_modules/mongodb-core/lib/topologies/server.js:249:23)
    at Socket.<anonymous> (/media/[...]/node_modules/mongodb-core/lib/connection/connection.js:265:22)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at readableAddChunk (_stream_readable.js:153:18)
    at Socket.Readable.push (_stream_readable.js:111:10)
    at TCP.onread (net.js:531:20)
Run Code Online (Sandbox Code Playgroud)

db在docker中运行.我可以通过"MongoClient"连接到它

datasources.js:

{
    "mongodb_dev": …
Run Code Online (Sandbox Code Playgroud)

mongodb loopbackjs

6
推荐指数
1
解决办法
2126
查看次数

Loopback和mocha:等待服务器完成启动脚本

嗨,作为问题的标题,我想知道如何在启动测试之前检查环回启动脚本是否已完成.在示例项目中:

https://github.com/strongloop/loopback-example-relations

测试文件夹中有一个文件似乎可以完成这项工作,但遗憾的是它没有解决它.

start-server.js:

var app = require('../server/server');

module.exports = function(done) {
  if (app.loaded) {
    app.once('started', done);
    app.start();
  } else {
    app.once('loaded', function() {
      app.once('started', done);
      app.start();
    });
  }
};
Run Code Online (Sandbox Code Playgroud)

此脚本在其余测试API中加载,如下所示:

before(function(done) {
    require('./start-server');
    done();
});
Run Code Online (Sandbox Code Playgroud)

但是从不调用该函数.这是使用该脚本的正确方法吗?

我结束了以下实现:

before(function (done) {
    if (app.booting) {
        console.log('Waiting for app boot...');
        app.on('booted', done);
    } else {
        done();
    }
});
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我对这个启动服务器脚本感到困惑.

按照@stalin建议编辑我修改了before函数如下:

before(function(done) {
    require('./start-server')(done);
});
Run Code Online (Sandbox Code Playgroud)

并且执行进入else分支但从done未被调用.

javascript node.js strongloop loopbackjs

6
推荐指数
1
解决办法
1124
查看次数

loopback remote方法:参数验证

是否有一个表单使环回自动验证远程方法中的输入参数?

我们假设我们有一个远程方法的以下定义:

  WebuserModel.remoteMethod('overLogin',  {
      description: "Performs a Webuser's login to the system",
      accepts: [
        {
          arg: 'credentials', type: {
            "username": { type: "string", required:true },
            "password": { type: "string", required: true }
          },
          http: {source: 'body'},
          required: true
        },
      ],
      returns: {arg: 'accesToken', type: "object", root: true},
      http: {path: '/login', verb: 'post'}
    }
Run Code Online (Sandbox Code Playgroud)

我希望loopback能够在每个请求上执行输入参数的验证,并在传递的对象不符合定义的模式(具有两个强制属性的强制对象)时引发错误.

显然它不会发生.任何线索?

loopbackjs

6
推荐指数
1
解决办法
1338
查看次数