1

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

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

我工作很棒。

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

例如,我的 SQL 文件以声明 20-30 个变量开始。

创建客户端.sql:

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

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

4

1 回答 1

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);
于 2016-11-16T21:39:54.857 回答