在loopback api中定义可以在定义的模型中使用的自定义函数的最佳方法是什么?
例如,一个基本的快速应用程序可以在根目录下的helper文件夹中有函数,但不建议在环回中执行相同的操作,并且不保持环回方式。
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
非常好documented。
自定义逻辑可以放在
中应用程序解耦逻辑可以很好地放入辅助文件夹,根级别的单独文件夹等。以这种方式模块化程序没有任何错误或困难,这实际上是一件好事。
答案 1 :(得分:0)
正如其他人所说,Loopback documentation会回答你的问题:
- 向模型添加逻辑 - 添加远程方法,远程挂钩和操作挂钩。
- 定义启动脚本 - 编写应用程序启动时运行的脚本(在/ server / boot目录中)。
- 定义中间件 - 向应用程序添加自定义中间件。
如果您具有特定型号,启动脚本或中间件的自定义功能,那么这是一个很好的答案。 as Dharmendra Yadav said,mixins可以是另一种选择:
您可以使用mixins在模型上执行不同的常用操作,例如使用操作挂钩观察更改并添加模型属性。
但是那些根本不适合这些类别的代码呢?
我没有很多网络框架的经验,但我使用的一个框架是Grails,它非常自以为是,gives you a place for just about everything。如果您的代码不适合任何类别,那么它们也为您提供了一个位置:
- src / main / groovy - 支持来源
因此,当我在Loopback中遇到同样的问题时,我刚刚在src
下创建了一个server
目录,在那里我放了一些似乎不太合适的帮助类适合其他地方。我根据需要包括它们:
const HelperClass = require('../src/HelperClass');
HelperClass.helperFunction()...
当然,您可以将文件夹命名为:src
,helpers
,support
,无论如何。然后根据需要将其放在common
或server
下。
答案 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继承到模型中,非常简单。