将数据库连接对象添加到node.js中的process.env全局是一种好习惯吗?

时间:2015-08-28 10:00:01

标签: node.js process module redis

我们已经使用节点process.env 全局对象来存储/访问environment variables但是我们还可以附加需要跨多个文件/模块访问的其他对象吗?

具体示例: 想象一下,您正在连接数据存储例如 Redis 1 ,您模块化您的应用,以便每个模块都可以打开自己与Redis的连接。

使用以下内容是否有意义:

process.env.redisClient = || process.env.redisClient || require('redis').createClient()
// use the shared/global connection for your needs:
process.env.redisClient.set('Hello', 'World');
process.env.redisClient.get('Hello', function(err, reply) {
 console.log('Hello ' + reply);
});

意识到这个问题可以感知为" 主观"或者"基于意见的",但我不是要求任何人的意见;我想知道是否有人具有 特定经验 的情况,其中将对象添加到process.env将" 中断生产"或者有其他不利影响

1 对于连接数 最小化的 的任何数据库都是如此因此适用于MySQL ,PostgeSQL,MongoDB等。

1 个答案:

答案 0 :(得分:1)

可悲的是,这不起作用。 我们 无法 将对象或函数附加到节点的process.env全局对象,因为添加到process.env的所有条目都是类型转换为<强>字符串

如果您对我们最终如何解决此问题感兴趣,请参阅:https://github.com/nelsonic/redis-connection