在loopback api中定义自定义函数的最佳方法

时间:2016-10-18 09:16:49

标签: node.js loopbackjs

在loopback api中定义可以在定义的模型中使用的自定义函数的最佳方法是什么?

例如,一个基本的快速应用程序可以在根目录下的helper文件夹中有函数,但不建议在环回中执行相同的操作,并且不保持环回方式。

任何帮助都将受到高度赞赏。

4 个答案:

答案 0 :(得分:1)

非常好documented

自定义逻辑可以放在

  • 启动脚本
  • 中间件
  • 模型:
    • 远程方法
    • 远程挂钩
    • 操作挂钩

应用程序解耦逻辑可以很好地放入辅助文件夹,根级别的单独文件夹等。以这种方式模块化程序没有任何错误或困难,这实际上是一件好事。

答案 1 :(得分:0)

正如其他人所说,Loopback documentation会回答你的问题:

  
      
  • 向模型添加逻辑 - 添加远程方法,远程挂钩和操作挂钩。
  •   
  • 定义启动脚本 - 编写应用程序启动时运行的脚本(在/ server / boot目录中)。
  •   
  • 定义中间件 - 向应用程序添加自定义中间件。
  •   

如果您具有特定型号,启动脚本或中间件的自定义功能,那么这是一个很好的答案。 as Dharmendra Yadav saidmixins可以是另一种选择:

  

您可以使用mixins在模型上执行不同的常用操作,例如使用操作挂钩观察更改并添加模型属性。

但是那些根本不适合这些类别的代码呢?

我没有很多网络框架的经验,但我使用的一个框架是Grails,它非常自以为是,gives you a place for just about everything。如果您的代码不适合任何类别,那么它们也为您提供了一个位置:

  
      
  • src / main / groovy - 支持来源
  •   

因此,当我在Loopback中遇到同样的问题时,我刚刚在src下创建了一个server目录,在那里我放了一些似乎不太合适的帮助类适合其他地方。我根据需要包括它们:

const HelperClass = require('../src/HelperClass');
HelperClass.helperFunction()...

当然,您可以将文件夹命名为:srchelperssupport,无论如何。然后根据需要将其放在commonserver下。

答案 2 :(得分:-1)

这里有一些示例代码可以让您朝着正确的方向前进。

mynewmodel.js

http://domain/api/mynewmodel/myfunc.js

function myfunc(data, callback) {
    // ** Put your code here **
    console.log('myfunc');
}

function remoteMethod(model) {

    model.remoteMethod(
        'myfunc',
        {
            http: { verb: 'post' },
            accepts: { arg: 'data', type: 'data' },
            returns: [
                { arg: 'returndata', type: 'data' }
            ]
        }
    )
}

<强>更新 通常你的js文件是共同的/模型

答案 3 :(得分:-1)

我发现在loopback中定义函数的最佳方法是使用mixins。以下是这样做的示例方式..

https://loopback.io/doc/en/lb3/Defining-mixins.html

您可以使用{mixins:yourmixin.js}通过模型的.json将这些已定义的mixin继承到模型中,非常简单。