2016-10-18 115 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之下。

相關問題