Javascript';编号';和博士后类型
我通过Javascript';编号';和博士后类型,javascript,node.js,postgresql,Javascript,Node.js,Postgresql,我通过pg包将postgres与node.js一起使用,我只是刚刚开始,所以我的目标是一个非常简单的表格,如下所示,通过命令在psqlshell中创建 CREATE TABLE people(id int, name text); Column | Type | Modifiers ------------+---------+----------- id | int | name | text | 节点文件的相关部分如下所示。我所要做的就是得到当
pg
包将postgres与node.js一起使用,我只是刚刚开始,所以我的目标是一个非常简单的表格,如下所示,通过命令在psql
shell中创建
CREATE TABLE people(id int, name text);
Column | Type | Modifiers
------------+---------+-----------
id | int |
name | text |
节点文件的相关部分如下所示。我所要做的就是得到当前人数的一个计数(这很好),将其递增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中创建字段时,尝试了
和numeric
两种类型,但没有任何区别int
- 假设问题是postgres中定义的类型与javascript中更松散的定义之间的不兼容,我尝试转换类型
,同样没有效果值($1::int,$2)
- 我认为
项目可能是一个解决方案,但据我所知,它不是(我很可能是错的)[node pg types][1]
- 如果我用
或1
(或任何其他数字/字符串)替换'1'
调用中的client.query
变量,则next
将作为id显示在postgres中1
看起来您同时在做两件事(异步)。在查询完成后(在回调中)尝试插入:
好的,
console.log(result.rows[0].count)
给出了0
(表为空,所以正确),但它的类型是string
。不确定您对别名的建议是什么意思?您能展开吗?好的,console.log(result.rows[0].count)
给出了0
(表为空,所以正确),但它的类型是string
。不确定您对别名的建议是什么意思?你能扩展一下吗?工作很有魅力,谢谢!我觉得自己是个白痴,我错过了!工作很有魅力,谢谢!我觉得自己是个白痴,我错过了!
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) {
});
});
});