postgres复合types在node-postgres上

说我有以下postgreSQL复合types:

CREATE TYPE myType AS( id bigint, name text, ); 

和一个除了那个types的存储过程:

 CREATE FUNCTION myFunction(mt myType){ //do some stuff } 

我想使用node-postgres模块从Node-js调用这个过程。

 var pg = require('pg'); var connectionString = "connection string"; pg.connect(connectionString, function(err, client, done) { client.query('SELECT myFunction($1)', [some value], function(err, result) { // do stuff done(); }); }); 

我如何在JS中创build这样的types? 有没有办法将节点types传递给Postgres存储过程?

经过一些工作,我find了解决这个问题的办法。

 var pg = require('pg'); var connectionString = "connection string"; var myType = [ 12345, 'you' ]; pg.connect(connectionString, function(err, client, done) { client.query('SELECT myFunction($1::myType)', ['(' + myType.join(',') + ')' ], function(err, result) { // do stuff done(); }); }); 

join将返回这个: 12345,you 。 当添加苞片时,它会创build一个string,看起来像这样'(12345,'you')' ,在Postgres数据库中它将被转换为myType