Node / Sails / Node-Postgres,用于存储连接string的最佳实践

我正在使用Node-Postgres软件包来查询我在Sails.js框架中构build的应用程序的postgresql / postgis数据库。

我不知道为node-postgres包存储连接string的最佳位置是在模型和控制器中访问,但仍然安全。

例如,如果我想从一个模型中对postgres数据库执行查询,我现在做的是:

var conString = "postgres://postgres:mypass@localhost:5432/myapp_dev"; var client = new pg.Client(conString); client.connect(); var junk = []; client.query('SELECT * FROM junk', function (err, result) { // Stuff I do with the query result }); 

每次我需要执行一个查询时,声明这个连接string和新客户端是不好的做法/不方便的。 所以,我想能够做的是:

 client.connect(); var junk = []; client.query('SELECT * FROM junk', function (err, result) { // Stuff I do with the query result }); 

所以我只是删除了conString和新的客户端声明。 但是我不知道在我的应用程序中存储哪些内容,以使其可访问但安全。

我的目录结构遵循标准的Sails.js应用程序结构,与此类似: http ://runnable.com/UlbJJhdpQyoWAAAK/sails-js-example-project-for-node-js-and-webserver

任何帮助,将不胜感激

在sails.js中,您可以在config / env / development.js或config / env / production.js中设置环境特定的configuration。

始终将所有敏感信息存储在环境variables中,永远不要放在configuration文件中。 所以你的configuration文件会读取一个名为POSTGRES_CONNECTION的envvariables,如下所示:

 process.env.POSTGRES_CONNECTION 

对于任何与此相同问题挣扎的人,我build议将您的Sails数据库适配器定义存储在local.js文件中。

看一个例子的解决scheme: 使用local.js来存储sails-mysql密码