作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用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/
我是一名优秀的程序员,十分优秀!