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密码