【发布时间】:2020-05-21 07:32:17
【问题描述】:
我正在使用 NodeJS 和 PostgreSQL 构建自己的服务器。对于特定的 API,我执行一个查询,我需要知道结果的某个属性是否未定义。我做的是这样的:
pool.query('SELECT id, administrator FROM public."user" WHERE uid = \'' + admin + '\'', (error, results) => {
if (error) {
throw error
}
if (results.rows[0].administrator !== undefined) {
// do my stuff
}
});
但它不起作用,它返回我这个:
if (results.rows[0].administrator !== undefined) {
^
TypeError: Cannot read property 'administrator' of undefined
at /home/mauro/secure-door-server/api/controllers/secureDoorController.js:27:25
at Query.<anonymous> (/home/mauro/secure-door-server/node_modules/pg-pool/index.js:348:18)
at Query.handleReadyForQuery (/home/mauro/secure-door-server/node_modules/pg/lib/query.js:128:10)
at Connection.<anonymous> (/home/mauro/secure-door-server/node_modules/pg/lib/client.js:244:19)
at Connection.emit (events.js:223:5)
at Socket.<anonymous> (/home/mauro/secure-door-server/node_modules/pg/lib/connection.js:128:12)
at Socket.emit (events.js:223:5)
at addChunk (_stream_readable.js:309:12)
at readableAddChunk (_stream_readable.js:290:11)
at Socket.Readable.push (_stream_readable.js:224:10)
[nodemon] app crashed - waiting for file changes before starting...
如何查看此类属性?
【问题讨论】:
-
results.rows[0]是undefined,而不是results.rows[0].administrator。正如错误所说,您正在尝试使用.administrator属性 来自值undefined。 -
您对 SQL 注入攻击持开放态度。使用适当的参数化查询!
-
什么意思?
标签: javascript node.js postgresql api server