gpt4 book ai didi

javascript - 从 2 个不同的属性获取 MySql 表中的项目

转载 作者:行者123 更新时间:2023-12-03 22:24:57 26 4
gpt4 key购买 nike

我已经在 NodeJS w/Sequelize 中使用 MySQL 设置了一种方法,以使用每个项目的 id 从表中获取项目(有效),但我也试图按日期而不是 id 获取相同的项目。下面我有我写的代码片段和我已经尝试过的代码。
Controller
这里 FindOne 函数有效但 FindOneDate 无效,即使它们相同,除了后者将日期替换为 id。

// Find a single Menu Item with an id
exports.findOne = (req, res) => {
const { id } = req.params;

Menus.findByPk(id, { include: MenuItems })
.then((data) => {
res.send(data);
})
.catch((err) => {
res.status(500).send({
message: `Error retrieving menu with id: ${id}`,
});
});
};

// Find a single Menu Item with an date
exports.findOneDate = (req, res) => {
const { date } = req.params;

Menus.findByDate(date, { include: MenuItems })
.then((data) => {
res.send(data);
})
.catch((err) => {
res.status(500).sned({
message: `Error retrieving menu with date: ${date}`,
});
});
};
路线
在这里,我编写路由器获取日期的请求与我为 id 所做的相同。我曾尝试将路线更改为/date/:date 但这也没有太大作用。
// Retrieve a single Menu Item with id
router.get('/:id', menus.findOne);

// Retrieve a single Menu Item with date
router.get('/:date', menus.findOneDate);
这是我试图通过 postman 在请求中使用日期的照片,但我什么也没得到,这就是我的控制台的样子:
Console Log
我不确定为什么在控制台中它将我给的日期与 ID 进行比较。我正在寻找有关如何解决此问题的任何帮助或指导,如果您有任何想法或疑问,请告诉我。

最佳答案

之所以将您提供的数据与 ID 进行比较是因为 /:id/:date 。对于 express ,它的路线相同。由于您将 ID 路由放在 Date 路由之前,因此当有人发出请求(例如)/asdasd 时,它​​首先命中 /:id,因此它运行 menu.findOne。你需要改成这样

// Retrieve a single Menu Item with id
router.get('/:id', menus.findOne);

// Retrieve a single Menu Item with date
router.get('date/:date', menus.findOneDate);
当您想按日期查找时,您只需向 date/${your-date} 发出请求
顺便说一下,我认为 Sequelize 中没有 Model.findByDate 函数。也许您应该尝试 Model.findAllModel.findOne
Menus.findOne({
where: {
date //I don't know how your Menu modal looks like so let's just assume it has "date" column
},
include: MenuItems })
.then((data) => {
res.send(data);
})
.catch((err) => {
res.status(500).sned({
message: `Error retrieving menu with date: ${date}`,
});
});

关于javascript - 从 2 个不同的属性获取 MySql 表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64979766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com