0

我正在使用带有 newrelic 插件的 Sails 框架。我目前正在尝试根据 production.js/development.js 中的标志注册应用程序。这是 development.js 中的标志:

    ENABLE_NEWRELIC_NODE_SERVICE: false,

这是 App.js 中的一段代码:

    if (sails.config.ENABLE_NEWRELIC_NODE_SERVICE){
      require('sails-hook-newrelic/register');
    }

但似乎在 app.js 中无法访问sails.config(我可能错了)。有没有其他方法可以根据配置文件在 App.js 中包含条件?

谢谢!

4

2 回答 2

1

在实际加载 Sails 之前,该sails.config对象不可用。查看 的代码sails-hook-newrelic,我不清楚为什么register()需要这么早调用;似乎它可能只是作为钩子初始化的一部分发生。但是,代码不是这样写的,所以你被困在了这一点上。看起来有一个拉取请求打开来修复它。同时,假设您要基于 Node 环境激活 New Relic,您只需签process.NODE_ENVapp.js

if (process.NODE_ENV == 'development') {
   require('sails-hook-newrelic/register');
}

只需确保您使用NODE_ENV=development node app.js.

于 2016-02-25T15:45:36.073 回答
1

缺少 Sails 特定的执行方式,只需在配置文件中要求:

var config = require('./sails.config') // Check the path is correct

然后使用标志:

if (config.ENABLE_NEWRELIC_NODE_SERVICE){
    require('sails-hook-newrelic/register');
}
于 2016-02-25T14:22:10.353 回答