【发布时间】:2020-07-17 18:41:33
【问题描述】:
大家好
我是 ReactJS 的新开发者。我尝试将 Firebase 设置到我的后端,但我的前端有问题。如果我使用邮递员运行我的 API,我的 API 可以工作并从我的后端发送一条消息,但如果我从前端运行我的代码,我会收到类似这样的错误 表中的列是用户并且不是未定义
{ error: column "undefined" does not exist
at Connection.parseE (C:\fordg\node_modules\pg\lib\connection.js:567:11)
at Connection.parseMessage (C:\fordg\node_modules\pg\lib\connection.js:391:17)
at Socket.<anonymous> (C:\fordg\node_modules\pg\lib\connection.js:129:22)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:547:20)
name: 'error',
length: 109,
severity: 'ERROR',
code: '42703',
detail: undefined,
hint: undefined,
position: '55',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'parse_relation.c',
line: '3183',
routine: 'errorMissingColumn' }
这是我的后端代码
Orders.patch([ Object.assign({id: req.params.id}, req.body) ])
.then(orders => {
DB.query("SELECT oauth FROM users WHERE id = "+req.body.driver+" OR id = "+req.body.customer+"").then(res=>{
res.map((row,i)=>{
let tmp = {
token: row.oauth.token
}
res[i] = tmp;
});
// console.log(res);
const arrayToken = res.map(function (obj) {
return obj.token;
});
// console.log(arrayToken);
const message = {
// to: res[0].token,
registration_ids: arrayToken,
notification: {
body: "Hey! you got update order notification."
}
};
fcm.send(message, function(err, response){
console.log(response);
})
}).catch(err => console.log(err));
jsonData = util.jsonData(null, orders);
res.json(jsonData);
})
.catch(err => {
jsonData = util.jsonData(400);
res.status(jsonData.code).json(jsonData);
})
})
那么如何修复它,你能帮我解释一下我的代码错误吗?
【问题讨论】:
-
(1) 为什么要使用字符串连接来构建 SQL?你不认为占位符会更好吗? (2)
req.body.driver和req.body.customer是什么?我很确定其中至少有一个是undefined。 -
req.body.driver和req.body.customer的值为 id -
我建议找到一种更好的方法来构建您的查询,此代码看起来容易受到 SQL 注入的影响。
-
你确定吗?您将
id = undefined发送到数据库中,因此这两个值之一是undefined。 -
哦,谢谢,id 之一是未定义的@muistooshort
标签: node.js postgresql reactjs express