我想发出GET
请求,该请求从Postgres数据库返回数据,而不在高级指定where
子句中。
router.get("/:object_query", async (req, res) => {
var object_query = req.params.object_query;
var note = await db.note.findAll({
where: object_query
});
if (!note.length) {
return res.status(404).send();
}
res.send({
note
});
});
请求的请求将是这样的:
localhost/note/{objectID: "1234"}
或
localhost/note/{objectID: "1234", otherparam: "abcd"}
想法是我可以从同一个请求查询表中使用不同的行。
如果没有为我计划用于where
子句的每个不同数量的参数写入请求,这样的事情是否可能,因为我有一个想法?
应该如何做,从我的尝试
(node:23832) UnhandledPromiseRejectionWarning: Error: Support for `{where: 'raw query'}` has been removed.
谢谢你的帮助。
答案 0 :(得分:0)
req.params.object_query
是JSON字符串,您可以使用JSON.parse
函数
var object_query = JSON.parse(req.params.object_query);
和网址必须类似于localhost/note/{"objectID": 1234, "otherparam": "abcd"}
答案 1 :(得分:0)
这应该有效 -
router.get("/:object_query", async (req, res) => {
var object_query = req.params.object_query;
db.note.findAll({
where: JSON.parse(object_query)
}).then(notes => {
if (!notes.length) {
return res.status(404).send();
}
res.send({
notes
});
});
});
确保param是有效的JSON。