2017-01-09 11 views
0

ループバックモデルにメインアプリケーションと一緒に作成される特定のオブジェクトへのアクセスを可能にする正しい方法があるかどうかを知る。ループバックモデルへのオブジェクトの受け渡し

例: 私たちはemailServiceを持っており、モデル上のイベントによっては関連するデータをこのサービスに送信したいと考えています。

今の私の現在のソリューションは、この

server.js

const app = loopback() 
const email = createEmailService() 
app.emailS = email 

myModel.js theresのアプリオブジェクトにクライアントを設定するよりもより良い方法を望ん

myModel.observe('before save', (ctx, next) => { 
    myModel.app.emailS.send('[email protected]', ctx.instance.message) 
} 

です。他のモデルはmyModel.app.models.OtherModelを介してアクセスされるので、私のアプローチは大丈夫ですが、おそらく最良の方法ではありません。

答えて

0

ほとんどの場合、これはうまくいきますが、アプリケーションオブジェクトの他のプロパティと競合しないように注意する必要があります。ループバックプロジェクトが成長するにつれて、プロパティを追加する可能性がありますので注意してください。

const emailS = require('../../server/email-service'); 
myModel.observe('before save', (ctx, next) => { 
    emailS.send('[email protected]', ctx.instance.message) 
} 

この道を

サーバー/メール-service.js

... 
module.exports = createEmailService(); 

共通/モデル/ myModel.js:

私自身の好みは、実際のモジュールにそれを置くことですループバック名前空間を汚染する心配はありません。

関連する問題