2017-03-17 54 views

回答

0

听起来你在找下面的NPM模块/库 - dotenv。您只需require('dotenv').config();这可能是最好的顶部(use strict;后)放置,并创建一个文本文件,该文件将读取为例:

url_prefix='mongodb://' url_ip='@localhost' port=':27017/' dbase='NameofDB'

当然,你可以添加任何你喜欢的这个文件。只要记住它是一个文本文件,并不能包含空格等

虽然对.ENV文件默认是在你的项目的根实际上你可以把它放在你喜欢的地方,并简单地说:

require('dotenv').config({path: '/custom/path/to/your/env/vars'});

(以上是从dotenv文档,并且它的作品,因为我在项目中使用。)

获得任何全局变量,你就只需键入: process.env.url_prefix

显然,从那里你可以从process.env语句,如建立必要的入口代码到你的DB: process.env.url_prefix+process.env.url_ip等,或 ${process.env.url_prefix}${process.env.url_ip}

使用dotenv可以让你保持理智控制的process.env全局。

请注意有一个问题!注意不要在代码中覆盖任何全局变量。因为只要Node进程正在运行,它们将保持覆盖。

+0

您好先生感谢您的重播实际上我正在使用节点js设计令牌项目。我在.YAML文件中手动创建了设计标记,所以我的问题是每当我需要存储数据时系统都应该决定在数据库或文件系统中存储数据的位置。为了做到这一点,我需要一个配置文件。我的问题是如何在节点js中编写配置文件,以及需要什么配置变量来将数据存储在文件中 – Sushma

0

如果您的意思是您需要一些常量和业务逻辑/数据文件来读取,您可以简单地包含文件在您的脚本使用require模块。

例如:您的文件名是test.json,则:

var test = require('test.json'); 

此外,您可以将文件作为“test.CONSTANT”

注意,在使用恒定:请确保您使用module.exports在任何需要的地方。细节是here

0

通常人们使用JSON来存储配置和东西,因为它非常javascripty ..你可以简单地做一个JSON配置文件。如果您需要存储一些特殊数据,如SECRET URL,只需使用环境变量即可。仅供参考我发现你的问题不清楚。这回答了你的问题了吗。

const fs = require("fs"); 

// Example Config 
let config = { 
    DB: "mongodb://blahblah:[email protected]", 
    secret: "thisandthat", 
    someScript: "blah.js" 
}; 

// Write to file. 
fs.writeFile('config.cfg', JSON.stringify(config), err => { 
    if (err) throw err; 
    console.log("[+] Config file saved!"); 
    // Retrieve 
    let confData = JSON.parse(fs.readFileSync('config.cfg')); 
    console.log(confData.secret); 
}); 


// To save variables in environment variables 
// Generally You will not set environment variables like this 
// You will have access to setting environment variables incase 
// you are using heroku or AWS from dash board. Incase of a machine    
// you can use ** export SOME_ENV_VAR="value" ** in your bash profile 
process.env.IP = "10.10.10.10"; 
// Too risky to put else where. 
process.env.API_KEY = "2ke9u82hde82h8"; 
// Get Data 
console.log(process.env.IP); 
console.log(process.env.API_KEY); 
+0

您好先生,感谢您的回放实际上我正在使用节点js设计令牌的项目。我在.YAML文件中手动创建了设计标记,所以我的问题是每当我需要存储数据时系统都应该决定在数据库或文件系统中存储数据的位置。为了做到这一点,我需要一个配置文件。我的问题是如何在节点js中编写配置文件以及需要什么配置变量才能将数据存储在文件中 – Sushma

相关问题