在項目中,咱們常將一些常量信息作成配置項,如,數據庫的連接配置,業務錯誤代碼配資等等。
咱們經過兩種方式能夠解決該問題。node
下邊,將以這兩方面進行展開。數據庫
Node.js 中經過process.env來訪問當前的環境變量信息express
$vim test.js console.log(process.env.HELLO_MSG); // 系統設置環境變量 $ export HELLO_MSG="Hello, world" && node 1.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)
{ "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來解析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配置文件 name: John Smith age: 37 spouse: name: Jane Smith age: 25 children: - name: Jimmy Smith age: 15 - name: Jenny Smith age: 12
// 經過文件讀取的方式,將得到的文件內容解析成json對象vim
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);