微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从承诺的 Postgres 查询检查数据库的列中是否存在值

如何解决从承诺的 Postgres 查询检查数据库的列中是否存在值

这是我的代码

const util = require('util')
const { Client } = require('pg');

const db = new Client({
  connectionString: process.env.DATABASE_URL,ssl: {
    rejectUnauthorized: false
  }
});

db.connect();

const queryP = util.promisify(db.query)

async function doStuff() {
  let inDatabase = await queryP.call(db,'SELECT EXISTS(SELECT 1 FROM searchtable WHERE val = $1) AS it_does_exist',[testValue]);
  console.log("In the Database: " + inDatabase);
}

本质上,我试图返回某种二元选项(真/假),如果在表的“val”列中找到“testValue”,则将 inDatabase 设置为一件事,如果在表的“val”列中找到另一件事,则设置为另一件事'不。我试着调整这个:

Check value if exists in column

但我一直在返回一个对象,而不是它所说的应该返回的真/假...感谢所有帮助!

JSON.stringify() 的输出是:

2021-05-10T22:26:17.723899+00:00 app[web.1]: In the Database: {"command":"SELECT","rowCount":1,"oid":null,"rows":[{"it_does_exist":false}],"fields":[{"name":"it_does_exist","tableID":0,"columnID":0,"dataTypeID":16,"dataTypeSize":1,"dataTypeModifier":-1,"format":"text"}],"_parsers":[null],"_types":{"_types":{"arrayParser":{},"builtins":{"BOOL":16,"BYTEA":17,"CHAR":18,"INT8":20,"INT2":21,"INT4":23,"REGPROC":24,"TEXT":25,"OID":26,"TID":27,"XID":28,"CID":29,"JSON":114,"XML":142,"PG_NODE_TREE":194,"SMGR":210,"PATH":602,"polyGON":604,"CIDR":650,"FLOAT4":700,"FLOAT8":701,"ABSTIME":702,"RELTIME":703,"TINTERVAL":704,"CIRCLE":718,"MACADDR8":774,"MONEY":790,"MACADDR":829,"INET":869,"ACLITEM":1033,"BPCHAR":1042,"VARCHAR":1043,"DATE":1082,"TIME":1083,"TIMESTAMP":1114,"TIMESTAMPTZ":1184,"INTERVAL":1186,"TIMETZ":1266,"BIT":1560,"VARBIT":1562,"NUMERIC":1700,"REFCURSOR":1790,"REGPROCEDURE":2202,"REGOPER":2203,"REGOPERATOR":2204,"REGCLASS":2205,"REGTYPE":2206,"UUID":2950,"TXID_SNAPSHOT":2970,"PG_LSN":3220,"PG_NdisTINCT":3361,"PG_DEPENDENCIES":3402,"TsveCTOR":3614,"TSQUERY":3615,"GTsveCTOR":3642,"REGCONfig":3734,"REGDICTIONARY":3769,"JSONB":3802,"REGNAMESPACE":4089,"REGROLE":4096}},"text":{},"binary":{}},"RowCtor":null,"rowAsArray":false}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。