gpt4 book ai didi

Javascript 'number' 和 postgres 类型

转载 作者:行者123 更新时间:2023-11-29 14:11:15 25 4
gpt4 key购买 nike

我通过 pg 包将 postgres 与 node.js 一起使用,我才刚刚开始,所以我的目标是创建一个非常简单的表格,如下所示,在 psql 命令shell

CREATE TABLE people(id int, name text);

Column | Type | Modifiers
------------+---------+-----------
id | int |
name | text |

Node 文件的相关部分如下所示。我想要做的就是计算当前人数(这很好),将其递增 1 并将此新值用作 id我添加到表中的下一个人

pg.connect(conString, function(err, client) {
var count;
var next;

client.query('SELECT COUNT(*) FROM people', function(err, result) {
count = result.rows[0].count;
next = Number(count)+1;
});

client.query('INSERT INTO people (id, name) VALUES ($1, $2)', [next, req.body.personName],function(err, result) {
});
});

req.body.personName 被设置在 express 应用程序的其他地方,这部分没有问题,名称在 postgres 中存储得很好但是id 列保持空白。

我有

  • 在 postgres 中创建字段时尝试了 numericint 类型,但没有任何区别
  • 假设问题是 postgres 中定义的类型之间的不兼容,以及 javascript 中较宽松的定义,我再次尝试转换类型 VALUES ($1::int, $2)无济于事
  • 我认为 [node-pg-types][1] 项目可能是一个解决方案,但据我所知,它不是(我很可能是错的)<
  • 如果我将 client.query 调用中的 next 变量替换为 1'1' (或任何其他数字/字符串)然后 1 将在 postgres 中显示为 id

最佳答案

看起来您正在同时(异步)做两件事。在查询完成后尝试插入(在回调中):

pg.connect(conString, function(err, client) {
var count;
var next;

client.query('SELECT COUNT(*) FROM people', function(err, result) {
count = result.rows[0].count;
next = Number(count)+1;
client.query('INSERT INTO people (id, name) VALUES ($1, $2)', [next,
req.body.personName],function(err, result) {
});
});


});

关于Javascript 'number' 和 postgres 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388100/

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