gpt4 book ai didi

javascript - 为什么我的 pg-query 结果抛出 TypeError

转载 作者:行者123 更新时间:2023-11-29 13:28:12 24 4
gpt4 key购买 nike

我正在创建一个 Node 函数来在 PostgreSQL 数据库中创建一个用户。我正在使用 node.jspgpg-query 从应用程序到数据库进行通信。

在我插入新记录之前,我试图验证电子邮件地址尚不存在。

我不确定为什么我的 result.rows[0].id 抛出一个 TypeError: Cannot read property '0' of undefined error 基于 documentation 我我正在使用正确的语法来访问我的查询结果。

这是函数:

/* POST create user */
router.post('/adduser', function(req, res) {

var salt = crypto.randomBytes(16);
var newHash = hash(req.body.password, salt);

query.connectionParameters = connString;
query('SELECT id FROM users WHERE email = $1',[req.body.email], function(err, result) {
if (err){
console.log('Insert error: ' + err);
}

// If email exists, return error else insert new record
if(result.rows[0].id != null) {
query('INSERT INTO users (email, password, salt) VALUES ($1, $2, $3)', [req.body.email, newHash, salt], function(err, result) {
if (err){
console.log('Insert error: ' + err);
}
res.send( ( err === null ) ? { msg: '' } : { msg:err } );
});
}
else{
console.log(result);
res.send({msg:'User already exists'});
}
});
});

我收到的错误如下:

/home/robot/workspace/userapp/routes/users.js:35
if(result.rows[0].id != null) {
^
TypeError: Cannot read property '0' of undefined
at /home/robot/workspace/userapp/routes/users.js:35:23
at Function.onSuccess (/home/robot/workspace/userapp/node_modules/pg-query/index.js:55:7)
at null.callback (/home/robot/workspace/userapp/node_modules/pg-query/node_modules/okay/index.js:7:16)
at Query.handleReadyForQuery (/home/robot/workspace/userapp/node_modules/pg/lib/query.js:80:10)
at null.<anonymous> (/home/robot/workspace/userapp/node_modules/pg/lib/client.js:158:19)
at emit (events.js:129:20)
at Socket.<anonymous> (/home/robot/workspace/userapp/node_modules/pg/lib/connection.js:109:12)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at Socket.Readable.push (_stream_readable.js:126:10)

我是 javascriptnode 的新手,所以它可能非常明显。如果有帮助,这里是 pg-query documentation

** 解决方案 **

将条件更改为 if(result[0].num == 0) { 解决了问题。 pg-query 显然不返回名为 rows 的属性。

最佳答案

** 解决方案 **

将条件更改为 if(result[0].num == 0) { 解决了问题。 pg-query 显然不返回名为 rows 的属性。

关于javascript - 为什么我的 pg-query 结果抛出 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29663883/

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