gpt4 book ai didi

javascript - node.js 和 PostgreSQL 查询 - 抛出新的 TypeError ('first argument must be a string or Buffer' );

转载 作者:行者123 更新时间:2023-12-03 12:36:21 25 4
gpt4 key购买 nike

我正在尝试使用nodejs从支持PostGIS的PostgreSQL数据库中获取随机几何图形,但是当我尝试执行第一个查询时,为了获取数据集中自动生成的“最大”顺序ID,它会抛出以上错误。我认识到该错误是因为它需要一个字符串而不是一个数值,但由于“gid”字段是数字,我不知道如何解决这个问题。

任何帮助解释问题/修复它以便我可以从数据库中获取我的随机对象将非常有帮助。提前致谢。

var db = new pg.Client(conString);
db.connect();

function getRandObj(){
var max = db.query( " SELECT MAX(`gid`) FROM `buildings` ");
//var min = db.query( " SELECT MIN(`gid`) FROM `buildings` ");
//var random = mt_rand( min , max );
//var result = db.query( " ST_AsGeoJSON(geom) FROM `buildings` WHERE `gid` >= random LIMIT 0,1 ");
//return result
}

最佳答案

我并没有过多地使用node.js,但是,我已经尝试了一些。在这里查看您的代码:

var max = db.query( " SELECT MAX(`gid`) FROM `buildings` ");

我发现了一些潜在的问题。首先,反引号。我认为他们是一个错误。将该查询更改为:

var max = db.query( " SELECT MAX(gid) FROM buildings ");

或者,如果您确实想在其中看到引号,则应该使用“名称”引号,例如:

var max = db.query( ' SELECT MAX("gid") FROM "buildings" ');

第二件事是返回值。我认为你不会得到那样的直接返回。您是否尝试过这样的事情:

var max = -1;
q = db.query(' SELECT MAX("gid") FROM "buildings" as mx ');

q.on('row', function (row) {
console.log(row);
max = row.mx;
};
console.log("max is %d", max);

-g

关于javascript - node.js 和 PostgreSQL 查询 - 抛出新的 TypeError ('first argument must be a string or Buffer' );,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23720774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com