定義可用於定義的模型的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