Node-postgres:命名参数查询(nodejs)

时间:2015-09-16 13:37:02

标签: sql node.js query-parameters node-postgres

我曾经在我的SQL查询中为我的SQL查询命名我的参数是出于实际原因,例如在php中使用PDO。

那么我可以在node-postgres模块中使用命名参数吗?

目前,我在互联网上看到很多示例和文档,显示如下查询:

client.query("SELECT * FROM foo WHERE id = $1 AND color = $2", [22, 'blue']);

但这也是正确的吗?

client.query("SELECT * FROM foo WHERE id = :id AND color = :color", {id: 22, color: 'blue'});

或者

client.query("SELECT * FROM foo WHERE id = ? AND color = ?", [22, 'blue']);

我问这是因为编号参数$n在动态构建查询的情况下对我没有帮助。

2 个答案:

答案 0 :(得分:2)

我一直在使用nodejs和postgres。我经常执行这样的查询:

client.query("DELETE FROM vehiculo WHERE vehiculo_id= $1", [id], function (err, result){ //Delete a record in de db
    if(err){
        client.end();//Close de data base conection
      //Error code here
    }
    else{
      client.end();
      //Some code here
    }
  });

答案 1 :(得分:2)

您要做的事情有library。方法如下:

var sql = require('yesql').pg

client.query(sql("SELECT * FROM foo WHERE id = :id AND color = :color")({id: 22, color: 'blue'}));