如何将medic注射器添加到node.js应用程序

如何将medic注射器添加到node.js应用程序,node.js,inversion-of-control,code-injection,Node.js,Inversion Of Control,Code Injection,我已经安装了medic injector软件包,并根据medic injector的github站点上的说明创建了一个app/bootstrap.js文件 我们如何确保在我的app.js启动后调用喷油器?有人有什么建议吗 提前谢谢 Tami创建注入器并添加映射后,需要在注入器上调用“triggerFunctionWithInjectedParams”方法 例如: injector.triggerFunctionWithInjectedParams([function name that you

我已经安装了medic injector软件包,并根据medic injector的github站点上的说明创建了一个app/bootstrap.js文件

我们如何确保在我的app.js启动后调用喷油器?有人有什么建议吗

提前谢谢


Tami

创建注入器并添加映射后,需要在注入器上调用“triggerFunctionWithInjectedParams”方法

例如:

injector.triggerFunctionWithInjectedParams([function name that you want to call]);
请参阅injector类的api文档,了解它包含哪些方法:

medic注射器的基本用途是:

  • 创建喷油器对象
  • 将映射添加到喷油器
  • (如果改变喷油器,根据需要删除映射)
  • 使用triggerFunctionWithInjectedParams调用包含所有注入映射的函数

  • 我创建了一个app/bootstrap.js文件,完全如所述。然后,我通过“bootstrap=require('./app/bootstrap')”将其包含在我的app.js中。当我运行“node app.js”时,在bootstrap.js中的“var injector=new injector()”行上抛出一个错误……它是“TypeError:object不是函数”。显然,这意味着node.js导出无法找到它。我不明白这为什么不起作用。显然,我没有正确设置,但是,对于其他节点包,设置/使用通常是微不足道的。好的,我仔细查看了您提供给我的API链接,并重构了bootstrap.js,以便前两行执行以下操作:“var Injector=require('medic-Injector')。InjectorSync;var Injector=new Injector()它不会再抛出任何错误…(我已经使用Node.js一周了——新手!)。但是,我如何调用一个带有注入参数和非注入参数的方法?是的,我调用了,应用程序再次抛出。这就是我的场景:我在另一个js文件中定义了一个方法,通过module.exports导出。它被称为“sendAlertViewEmail(电子邮件、消息、回调、邮件选项、smtpTransport)”。应注入以下参数:“mailOptions”和“smtpTransport”。我从另一个js文件调用“sendAlertViewEmail”。我是否需要在调用模块中使用('app/bootstrap'),然后使用injector.triggerFunctionWithInjectedParams(sendAlertViaEmail)来实际调用该方法?是的,这是一种方法。您必须让发出调用的模块能够看到您的注入器,这样它才能使用它。您可以执行以下操作:injector.triggerFunctionWithInjectedParams(func,[param1,param2,param3]);在本例中,括号是文字。将参数作为数组传递,medic注射器在执行功能时将“应用”该数组。