Javascript 检查promisified Postgres查询中的数据库列中是否存在值
这是我的密码:Javascript 检查promisified Postgres查询中的数据库列中是否存在值,javascript,node.js,database,postgresql,querying,Javascript,Node.js,Database,Postgresql,Querying,这是我的密码: 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) asyn
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);
}
本质上,我试图返回某种二进制选项(true/false),其中如果在表的“val”列中找到“testValue”,则将inDatabase设置为一项,如果没有,则将另一项设置为另一项。我试着适应这个:
但我一直得到一个返回的对象,而不是它说的应该返回的真/假…感谢所有的帮助
JSON.stringify()的输出为:
为什么不试着打印JSON.stringify(inDatabase),看看返回了什么?@NirAlfasi那么…基于strinified版本(我把它放在问题中),我是否使用inDatabase.rows[0]访问“it_does_exist”值。它确实存在?使用SQL表达式
EXISTS(/*子查询*/)
。可能有某种方法可以让您的模糊处理层生成该结果。@nickcoding2是的,当您运行SELECT
时,您会在inDatabase.rows
下返回一个结果数组,在这种情况下,您只有一个结果,因为您检查了是否存在。希望有帮助!
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}