【发布时间】:2020-04-04 04:56:37
【问题描述】:
我正在尝试通过 Knex 从我的 PostgreSQL 数据库中获取数据到我的前端,但是我收到了这个错误:
Error: Undefined binding(s) detected when compiling SELECT.
Undefined column(s): [mdn]
query: select "mdn" from "asurion"."user_info" where "mdn" = ?
这是我进行查询的后端函数:
function prepareSearchResponse(dbResponse) {
return dbResponse.map((dbobj) => {
const pInfo =
dbobj.message_json.sdes &&
dbobj.message_json.sdes.events.find((obj) => obj.personalInfo);
return {
realTimeId: dbobj.mdn,
endTime: dbobj.message_json.info.endTime,
startTime: dbobj.message_json.info.startTime,
conversation_id: pInfo ? pInfo.personalInfo.personalInfo.surname : "n/a",
skill: dbobj.message_json.info.latestSkillName,
operatorName: dbobj.message_json.info.latestAgentFullName,
operatorId: dbobj.message_json.info.latestAgentId,
entryPoint: pInfo ? pInfo.personalInfo.personalInfo.name : "n/a",
ipAddress: dbobj.message_json.info.ipAddress,
messageRecords: dbobj.message_json.messageRecords,
};
});
}
const getDeviceId = (req, res, db) => {
let rId = req.params.rId;
db.from("asurion.user_info")
.where({ mdn: rId })
.select("mdn")
.then((items) => {
if (items.length) {
res.json(utils.prepareSearchResponse(items));
} else {
res.json({ dataExists: "false" });
}
})
.catch((err) => console.log(err));
};
有谁知道我做错了什么?
【问题讨论】:
-
看起来你的
rId参数是undefined。在knex执行之前尝试console.log它,然后检查它是否正确传递。 -
是的,它显示未定义。我可以放什么参数来让数据库中的数据出现在前端?
标签: postgresql knex.js