我正在通过pg
包使用带有node.js的postgres,我只是开始了所以我的目标是创建一个非常简单的表格,如下所示:{{1} shell命令
psql
节点文件的相关部分如下所示。我所要做的就是得到当前人数的计数(这很好),将其递增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
,其中没有任何问题,名称在postgres中存储得很好,但express
列仍为空白。
我有
id
和numeric
两种类型,但没有区别int
,再次无济于事VALUES ($1::int, $2)
项目可能是一个解决方案,但据我所知,它不是(我可能错了)[node-pg-types][1]
或next
(或任何其他数字/字符串)替换client.query
来电中的1
变量,则'1'
将在postgres中显示为id 答案 0 :(得分:4)
看起来你一次做两件事(异步)。查询完成后(在回调中)尝试INSERT:
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) {
});
});
});