定义可用于定义的模型的loopback API中自定义函数的最佳方式是什么?在loopback API中定义自定义函数的最佳方法
例如,一个基本的快速应用程序可以在根目录的助手文件夹中具有函数,但不建议在loopback中执行相同的操作,并且不保留回送方式。
任何帮助将不胜感激。
定义可用于定义的模型的loopback API中自定义函数的最佳方式是什么?在loopback API中定义自定义函数的最佳方法
例如,一个基本的快速应用程序可以在根目录的助手文件夹中具有函数,但不建议在loopback中执行相同的操作,并且不保留回送方式。
任何帮助将不胜感激。
定义的环回功能,我发现最好的方法是使用mixins
。这里是这样做的抽样方式..
https://loopback.io/doc/en/lb3/Defining-mixins.html
您可以{mixins:yourmixin.js}
,美观大方,易于通过你的模型以.json继承这些定义混入到您的模型。
这很好documented。
定制的逻辑可以被放置在
应用解耦逻辑能够很好地把在助手文件夹,在根级等不同的文件夹没有什么错,也不难以与模块化程序这种方式,它实际上是一件好事。
'remoteMethod','remoteHooks','operationHooks'所有这些方法都会直接通过url或某个事件调用。 –
但正如我所提到的,我需要帮助函数,这将在模型中作为帮助函数调用,而不是直接使用remoteHook或remoteMethod。我非常了解remoteMethods。 –
但无论如何谢谢你的回应:) –
下面是一些示例代码,让您朝正确的方向前进。
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文件进去普通/型号
我是新的..所以你可以为'mynewmodel.js'指定文件夹路径,以及这个'dropTable'函数如何调用'myfunc'? –
通常,您的js文件在您的环回项目中处于通用/模型中。另外,'dropTable'应该是'myfunc'。我在这个例子中做了修改。 – ASA2
我有一整类'myclass.js',我想用这个mynewmodel.js,'myclass.js'的函数将用在这个'myfunc'函数中。我如何连接它? –
正如其他人所提到的,Loopback documentation回答你的问题是这样的:
- 添加逻辑模型 - 添加远程方法,远程钩子和操作挂钩。
- 定义启动脚本 - 编写应用程序启动时运行的脚本(位于/ server/boot目录中)。
- 定义中间件 - 向应用程序添加自定义中间件。
这是一个伟大的答案,如果你有自定义的功能,适用于特定的模式,引导脚本,或中间件。和as Dharmendra Yadav said,mixins可以是另一种选择:
您可以使用混入执行对不同车型的共同行动,如观察使用操作挂钩的变化和增加模型属性。
但是那些根本不适合任何这些类别的代码呢?
我没有很多web框架的经验,但我用过的一个框架是Grails,它很有见地,并且gives you a place for just about everything。如果你的代码不适合任何类别的,他们给你一个地方太多:
- 的src/main /常规 - 支持源
所以,当我在Loopback中遇到了同样的问题,我只是在server
下创建了一个src
目录,这就是我放置一些似乎不适合其他任何地方的帮助类的地方。我把它们作为需要:
const HelperClass = require('../src/HelperClass');
HelperClass.helperFunction()...
当然你也可以将文件夹命名,但是你会喜欢:src
,helpers
,support
,等等。然后酌情将其置于common
或server
之下。
请把一些代码? –
@ManishSingh无需任何代码。这是一般性问题,像在节点中存储函数的最佳方式是将它们保存在'helpers'和配置文件的'config'文件夹中。 –
如果您觉得您的问题已解决,请随时将所提供的答案标记为已接受。干杯 – Overdrivr