Dmi*_*kin 60 javascript config node.js express
在node.js/Express上运行的开源应用程序中存储数据库配置(用户名,密码)的最佳方法是什么?两个具体问题:
例如,我应该将它放在文件/lib
夹中的单独config.js文件中,并且永远不要将它包含在GitHub上公开可用的主存储库中吗?
要包含配置,是require('./config.js')
从需要它的文件那么简单还是有更好的方法呢?
PS对不起,如果问题看起来有点简单或没有这么好的表述,但我刚开始:)
Ste*_*ght 91
我是这样做的:
创建一个config.js,其中包含代表您的配置的对象:
var config = {
development: {
//url to be used in link generation
url: 'http://my.site.com',
//mongodb connection settings
database: {
host: '127.0.0.1',
port: '27017',
db: 'site_dev'
},
//server details
server: {
host: '127.0.0.1',
port: '3422'
}
},
production: {
//url to be used in link generation
url: 'http://my.site.com',
//mongodb connection settings
database: {
host: '127.0.0.1',
port: '27017',
db: 'site'
},
//server details
server: {
host: '127.0.0.1',
port: '3421'
}
}
};
module.exports = config;
Run Code Online (Sandbox Code Playgroud)
然后在我的index.js(或任何地方),
var env = process.env.NODE_ENV || 'development';
var config = require('./config')[env];
Run Code Online (Sandbox Code Playgroud)
然后用该对象处理,例如
var server = express();
server.listen(config.server.port);
...
Run Code Online (Sandbox Code Playgroud)
anv*_*rik 21
不确定这是否是最佳做法,但我个人有一个config.json
文件,我存储我的数据库连接信息.然后我做以下事情:
// options.js
var fs = require('fs'),
configPath = './config.json';
var parsed = JSON.parse(fs.readFileSync(configPath, 'UTF-8'));
exports.storageConfig= parsed;
Run Code Online (Sandbox Code Playgroud)
然后从另一个文件中执行以下操作:
var options = require('./options');
var loginData = {
host: options.storageConfig.HOST,
user: options.storageConfig.user,
password: options.storageConfig.password
};
Run Code Online (Sandbox Code Playgroud)
小智 18
对于运行我需要隐藏数据库凭据的玩具应用程序,我使用dotenv模块.
将您的敏感信息放在.env文件(.gitignored)中,放在require('dotenv').config();
您的应用中; dotenv创建process.env
您可以参考的条目.
.env
文件:
DATABASE_PASSWORD=mypw
DATABASE_NAME=some_db
Run Code Online (Sandbox Code Playgroud)
要引用这些值:
process.env.DATABASE_PASSWORD
Run Code Online (Sandbox Code Playgroud)