无法获取配置json文件

时间:2015-07-01 15:26:18

标签: javascript json node.js

我使用以下代码来使用配置文件,我想读取值 我尝试使用以下内容并得到错误 TypeError:undefined不是函数

这是我在文件夹配置/配置

中创建的json文件
    {
      "ENV": {
        "dev": {
          "PORT": 3050
        },
        "prod": {
          "PORT": 3060
        }
      }
}


config = require('./configuration/config');

我尝试使用以下内容来获取ENV并且出现错误

var env = config.get('ENV');

我使用这个模块 https://www.npmjs.com/package/config

debug 中,我看到配置是具有已定义值的对象...

3 个答案:

答案 0 :(得分:3)

根据您提供的模块链接,配置JSON(default.json)需要位于名为“config”的root文件夹中。然后,您可以使用

require模块配置
var config = require('config');

,这似乎会自动加载JSON并解析它。

然后,您可以像在问题中一样使用get方法:

var env = config.get('ENV');

答案 1 :(得分:1)

你错了。

你需要有一个" config / default.json",基于你的根文件夹。

然后,只是:

var config = require( 'config' );

var env = config.get( 'ENV' );

console.log( env );

config / default.json文件:

{
  "ENV": {
    "dev": {
      "PORT": 3050
    },
    "prod": {
      "PORT": 3060
    }
  }
}

刚刚测试过您的数据,它可以正常工作。

编辑:

我不确定您是否需要使用此模块,但如果您不这样做,则可以使用以下内容:

var config = require( './configuration/config.js' );

console.log( config.ENV );

并且,您的配置文件将是 ./ configuration / config.js (请注意.js不是.json):

module.exports = {
  "ENV": {
    "dev": {
      "PORT": 3050
    },
    "prod": {
      "PORT": 3060
    }
  }
}

这是一个简单但有效的配置文件。

答案 2 :(得分:0)

您正在以错误的方式使用模块,您需要这样做:

在您的app文件夹中放置一个名为config的文件夹,然后您应该在该文件夹中创建一个名为default.json的文件。所以,它应该是这样的:

yourApp
--config
----default.json

基于您的示例的default.json内容应仅为此:

{
  "ENV": {
    "dev": {
      "PORT": 3050
    },
    "prod": {
      "PORT": 3060
    }
  }
}

然后,当你想在任何地方使用你的配置时,你应该要求这样的模块:

var config = require('config');

然后使用您的值:

var devPort = config.get("ENV.dev.port");

当然,您也可以这样做:

var config = require('config');
var env = config.get('ENV.dev');
var port = env.port;

请记住,这是一个JSON,你可以像玩对象一样玩。