在项目中,我们常将一些常量信息做成配置项,如,数据库的链接配置,业务错误代码配资等等。
我们通过两种方式可以解决该问题。

  1. 系统环境变量的方式
  2. 配置文件的方式

下边,将以这两方面进行展开。

1. 系统环境变量

Node.js 中通过process.env来访问当前的环境变量信息

$vim test.js
console.log(process.env.HELLO_MSG);

// 系统设置环境变量
$ export HELLO_MSG="Hello, world" && node 1.js

2. 通过配置文件

  • js配置文件
// config.js
var config = {
  // debug 为 true 时,用于本地调试
  debug: true,

  name: 'Nodeclub', // 社区名字
  description: 'CNode:Node.js专业中文社区', // 社区的描述
  keywords: 'nodejs, node, express, connect, socket.io',
  
  // 其他配置项...
};
module.exports = config;

// 在使用的模块文件中引入
var config = require('./config')

console.log(config.debug)
  • json文件
{
  "debug": true,
  "name": "Nodeclub",
  "description": "CNode:Node.js专业中文社区",
  "keywords": "nodejs, node, express, connect, socket.io"
}

// 通过require()函数
var config = require('./config.json');

// 读取文件并使用JSON.parse()解析
var fs = require('fs');
var config = JSON.parse(fs.readFileSync('./config.json').toString());

可以使用strip-json-comments模块来去掉配置文件中的备注,再将其当作标准的JSON来解析

var fs = require('fs');
var stripJsonComments = require('strip-json-comments');

function loadJSONFile (file) {
  var json = fs.readFileSync(file).toString();
  return JSON.parse(stripJsonComments(json));
}

var config = loadJSONFile('./config.json');
console.log(config);
  • YAML格式
// YAML配置文件
name: John Smith
age: 37
spouse:
  name: Jane Smith
  age: 25
children:
  - name: Jimmy Smith
    age: 15
  - name: Jenny Smith
    age: 12

// 通过文件读取的方式,将获得的文件内容解析成json对象

var fs = require('fs');
var YAML = require('yamljs');

function loadYAMLFile (file) {
  return YAML.parse(fs.readFileSync(file).toString());
}

var config = loadYAMLFile('./config.yaml');
console.log(config);

本文固定链接: http://www.js-code.com/node-js/node-js_30172.html