0
我是超级新手postgres并试图做一个简单的选择查询。选择查询postgreqs在nodejs上失败
我的表如下所示:
create table push_table
(
seq_id int,
device_id text,
primary key (seq_id),
user_id varchar(100)
);
和我的NodeJS代码如下:
pool.connect(function (err, client, done)
{
if (err) console.log(err)
myClient = client
//query if the user exists
var ageQuery = format('SELECT * from push_table WHERE user_id = ' + userId);
myClient.query(ageQuery, function (err, result) {
if (err) {
console.log(err)
}
console.log("number of rows:" + result.rows.length);
});
});
上运行nodejs
服务器日志打印:
{ [error: missing FROM-clause entry for table "catherine"]
name: 'error',
length: 113,
severity: 'ERROR',
code: '42P01',
detail: undefined,
hint: undefined,
position: '42',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'parse_relation.c',
line: '3129',
routine: 'errorMissingRTE' }
/data/OSC_Push_OOW/releases/20170703215021/api/controllers/pushcontroller.js:58
console.log("number of rows:" + result.rows.length);
^
TypeError: Cannot read property 'rows' of undefined
at null.callback (/data/OSC_Push_OOW/releases/20170703215021/api/controllers/pushcontroller.js:58:46)
at Query.handleError (/data/OSC_Push_OOW/shared/node_modules/pg/lib/query.js:161:17)
at null.<anonymous> (/data/OSC_Push_OOW/shared/node_modules/pg/lib/client.js:188:26)
at emitOne (events.js:77:13)
at emit (events.js:169:7)
at Socket.<anonymous> (/data/OSC_Push_OOW/shared/node_modules/pg/lib/connection.js:133:12)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:153:18)
at Socket.Readable.push (_stream_readable.js:111:10)
当发生这种情况时,你可以记录'userId'的值吗?可能你正在进行某种SQL注入? – joanolo
以及我不得不修改并添加明确的报价,使其工作。所以你的反馈肯定帮助我 – Vik