没有数据源的环回模型

时间:2016-09-22 17:47:31

标签: loopbackjs

我想在环回中创建一个具有非常复杂逻辑的模型,不可能映射到任何数据源。所以我想以某种方式只在JS中生成CRUD方法骨架,并能够简单地覆盖它们,如下所述:

extend the CRUD method in LoopBack

从外部它应该可以作为任何REST API访问,包含所有CRUD和其他方法,这些都是典型的环回。

我也会像往常一样对其应用ACL,授权和所有内容。

我该怎么办? 这个案例是否正式记录在案? CRUD方法是否正式记录,因此我可以安全地覆盖它们?

2 个答案:

答案 0 :(得分:0)

回送节点API记录在案there

只需覆盖您提供的链接中的方法即可。您需要在overriden方法中匹配原始方法的节点API,但除此之外没有限制。 ACL与此分离,因此无需担心。

但是,我不知道你打算如何在不使用数据源的情况下编写无状态环回应用程序,因为这是存储状态的地方。如果您的环回应用程序不是无状态的,请记住它不会扩展(无法在集群中启动多个实例),并且会在崩溃时执行令人讨厌的事情。你能不能解决你的问题/简化它?

答案 1 :(得分:0)

您可以使用lb model命令创建它。请务必选择:

  • 数据源:(无数据源)
  • 型号:型号
  • 曝光:是
  • Common / server:Common

这将在 common / models 中创建文件。您也可以手动执行此操作。无数据源模型基本上由这些文件内容组成:

test.json

{
  "name": "test",
  "base": "Model",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {},
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

test.js

'use strict';

module.exports = function(Test) {
    Test.greet = function(msg, cb) {
      cb(null, 'Greetings... ' + msg);
    }

    Test.remoteMethod('greet', {
          accepts: { arg: 'msg', type: 'string' },
          returns: { arg: 'greeting', type: 'string' }
    });
};

这将创建一个名为 / test 的路由,其中​​包含名为" greet" 的函数。