使用Node JS的动态PostgreSQL文件

时间:2016-11-16 20:05:17

标签: javascript node.js postgresql fs pg-promise

我有一个巨大的PostgreSQL文件(300行),用于在我的NodeJS应用程序中创建一个新客户端。 (我使用pg-promise。)我读了这个文件并用这个简单的代码返回结果:

NewClient: function() {
    var sql = fs.readFileSync(__dirname + '/sql/creating_client.sql').toString();
    return db.any(sql);
}

我工作得很好。

我必须在处理文件之前手动更改文件中声明的变量。

例如,我的SQL文件首先声明20-30个变量。

creating_client.sql:

do $$
declare 
  clientname varchar(150) := 'Demo';
  clienthostname varchar(150) := 'demo';
  default_password varchar(100) := 'keyboardcat'; 
  ....

我的问题:有没有办法将我的javascript中的动态变量注入SQL文件?

1 个答案:

答案 0 :(得分:0)

我猜这样的事情可行:

SQL

do $$
declare 
  clientname varchar(150) := '__clientname__';
  clienthostname varchar(150) := '__clienthostname__';
  default_password varchar(100) := '__default_password__'; 
  ....

节点

var myPassword = 'keyboardcat'
var sql = fs.readFileSync(__dirname + '/sql/creating_client.sql').toString();
sql.replace('__default_password__', myPassword);