Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js SailsJS框架的app.js中的sails.config.XXXX_Node.js_Sails.js_Newrelic_Newrelic Platform - Fatal编程技术网

Node.js SailsJS框架的app.js中的sails.config.XXXX

Node.js SailsJS框架的app.js中的sails.config.XXXX,node.js,sails.js,newrelic,newrelic-platform,Node.js,Sails.js,Newrelic,Newrelic Platform,我正在使用带有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

我正在使用带有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中包含条件


谢谢

除了特定于Sails的方法外,只需在配置文件中要求:

var config = require('./sails.config') // Check the path is correct
然后使用标志:

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

如果没有特定于Sails的方法,只需在配置文件中要求:

var config = require('./sails.config') // Check the path is correct
然后使用标志:

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

在实际加载sails之前,
sails.config
对象不可用。查看
sails hook newrelic
的代码,我不清楚为什么需要这么早调用
register()
;看起来这可能只是钩子初始化的一部分。但是,代码不是这样写的,所以你在这一点上卡住了。看来有个漏洞可以解决。同时,假设您希望基于节点环境激活New Relic,您可以在
app.js
中选中
process.Node_ENV

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

只需确保在启动应用程序时使用
NODE\u ENV=development NODE app.js

在实际加载sails之前,
sails.config
对象不可用。查看
sails hook newrelic
的代码,我不清楚为什么需要这么早调用
register()
;看起来这可能只是钩子初始化的一部分。但是,代码不是这样写的,所以你在这一点上卡住了。看来有个漏洞可以解决。同时,假设您希望基于节点环境激活New Relic,您可以在
app.js
中选中
process.Node_ENV

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

只要确保你用
NODE\u ENV=development NODE app.js启动你的应用程序

ENABLE\u NEWRELIC\u NODE\u SERVICE
你自己的标志吗?这不是Sails提供的东西吗?
ENABLE\u NEWRELIC\u NODE\u SERVICE
是您自己的标志吗?这不是Sails提供的功能?这并不能真正解决正确启用/禁用标志的问题,因为Sails config hook可以根据环境加载相应的配置文件。感谢您的帮助!虽然不是最正确的方法,但它确实起作用了!这并不能真正解决正确启用/禁用标志的问题,因为Sails config hook会根据环境加载相应的配置文件。感谢您的帮助!虽然不是最正确的方法,但它确实起作用了!谢谢你的洞察力!正如您所提到的,它不会真正解决问题,因为每次我们从dev切换到prod或任何其他环境时,app.js都需要修改。后来我试着把“sails hook newrelic/register”放进去——在这种情况下,它确实注册了,但实际上没有发送数据。但正如你所提到的,这并不是真正的帆船短缺。谢谢你的回复!真的很感激!只要您使用
NODE\u ENV
切换环境,就不必用这种方法修改
app.js
。感谢您的帮助!正如您所提到的,它不会真正解决问题,因为每次我们从dev切换到prod或任何其他环境时,app.js都需要修改。后来我试着把“sails hook newrelic/register”放进去——在这种情况下,它确实注册了,但实际上没有发送数据。但正如你所提到的,这并不是真正的帆船短缺。谢谢你的回复!真的很感激!只要您使用
NODE\u ENV
切换环境,就不必用这种方法修改
app.js