2017-01-09 35 views
0

知道是否有给环回模式访问到被沿着主应用程序创建特定对象的正确道路。传递对象为环回模式

例如: 我们有一个emailService并在模型上的某些事件,我们希望相关数据发送到该服务。

现在我目前的解决办法是这样的

server.js

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

myModel.js

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

希望能孤单更好的办法不是必须在客户端设置为应用对象。由于其他模型通过myModel.app.models.OtherModel访问,我认为我的方法没问题,但可能不是最好的方法。

回答

0

那么这部作品在大多数情况下细,但你必须要小心,它不与应用中的对象和环回项目的发展,他们可能将它添加更多的特性,所以留意它的其他属性冲突。

我自己的偏好是居然把它变成一个模块:

服务器/电子邮件service.js

... 
module.exports = createEmailService(); 

通用/模型/ myModel.js

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

这样您不必担心会污染环回名称空间。