2016-10-18 118 views
4

定义可用于定义的模型的loopback API中自定义函数的最佳方式是什么?在loopback API中定义自定义函数的最佳方法

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

任何帮助将不胜感激。

+1

请把一些代码? –

+0

@ManishSingh无需任何代码。这是一般性问题,像在节点中存储函数的最佳方式是将它们保存在'helpers'和配置文件的'config'文件夹中。 –

+1

如果您觉得您的问题已解决,请随时将所提供的答案标记为已接受。干杯 – Overdrivr

回答

-1

定义的环回功能,我发现最好的方法是使用mixins 。这里是这样做的抽样方式..

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

您可以{mixins:yourmixin.js},美观大方,易于通过你的模型以.json继承这些定义混入到您的模型。

+0

这是如何回答这个问题的? – Sebastian

+0

基于我的需要,我需要添加一些与特定模型/路线相关的功能,以及我在回送文档中做了一些小小的研究。这是我找到最适合我需要的东西,它工作得很好,它不会加载其他任何模型,只需要我需要的一个模型,它也使模块化代码,模型本身非常干净 –

+1

我同意这是定义这种方法的方式,也就是说,当你需要严格模型,路线和一些细节时。但是,当你想要一个与模型无关的通用功能时,我认为这不是方法。像一个函数,如果一个数字是偶数,则返回true与模型无关。 – Sebastian

0

这很好documented

定制的逻辑可以被放置在

  • 引导脚本
  • 中间件
  • 机型:
    • 远程方法
    • 远程钩
    • 操作钩

应用解耦逻辑能够很好地把在助手文件夹,在根级等不同的文件夹没有什么错,也不难以与模块化程序这种方式,它实际上是一件好事。

+0

'remoteMethod','remoteHooks','operationHooks'所有这些方法都会直接通过url或某个事件调用。 –

+1

但正如我所提到的,我需要帮助函数,这将在模型中作为帮助函数调用,而不是直接使用remoteHook或remoteMethod。我非常了解remoteMethods。 –

+0

但无论如何谢谢你的回应:) –

-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' } 
      ] 
     } 
    ) 
} 

UPDATE 一般的JS文件进去普通/型号

+0

我是新的..所以你可以为'mynewmodel.js'指定文件夹路径,以及这个'dropTable'函数如何调用'myfunc'? –

+1

通常,您的js文件在您的环回项目中处于通用/模型中。另外,'dropTable'应该是'myfunc'。我在这个例子中做了修改。 – ASA2

+0

我有一整类'myclass.js',我想用这个mynewmodel.js,'myclass.js'的函数将用在这个'myfunc'函数中。我如何连接它? –

0

正如其他人所提到的,Loopback documentation回答你的问题是这样的:

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

这是一个伟大的答案,如果你有自定义的功能,适用于特定的模式,引导脚本,或中间件。和as Dharmendra Yadav saidmixins可以是另一种选择:

您可以使用混入执行对不同车型的共同行动,如观察使用操作挂钩的变化和增加模型属性。

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

我没有很多web框架的经验,但我用过的一个框架是Grails,它很有见地,并且gives you a place for just about everything。如果你的代码不适合任何类别的,他们给你一个地方太多:

  • 的src/main /常规 - 支持源

所以,当我在Loopback中遇到了同样的问题,我只是在server下创建了一个src目录,这就是我放置一些似乎不适合其他任何地方的帮助类的地方。我把它们作为需要:

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

当然你也可以将文件夹命名,但是你会喜欢:srchelperssupport,等等。然后酌情将其置于commonserver之下。

相关问题