javascript - 续集模型查询-为什么两条路线不能同时工作?
问题描述
我正在使用 Express 中的一些路线,使用 Sequelize 创建我的模型。我有两个模型,它们都彼此独立工作。但我希望他们两个同时工作。对于有经验的人来说,可能有一个明显的原因。
我的第一条路线通过主键获取项目:
router.get('/:id', async (req, res) => {
try {
const categoryData = await Category.findByPk(req.params.id)
.then((result) => {
res.status(200).json(result);
});
} catch (err) {
res.status(500).json(err)
}
});
此查询的示例结果如下所示:
{
"id": 1,
"category_name": "Shirts"
}
我的第二条路线通过另一个参数 category_name 获得结果
这是这条路线:
router.get('/:category_name', async (req, res) => {
try {
const categoryData = await Category.findAll({
where: {category_name: req.params.category_name}
})
.then((result) => {
res.status(200).json(result);
});
} catch (err) {
res.status(500).json(err)
}
});
结果如下所示:
[
{
"id": 2,
"category_name": "Shorts"
}
]
但是,我一次只能使用一条路线。如果两条路线都打开,则只有一条或另一条有效。为什么??
解决方案
服务器无法区分两个可变端点路径。
你有一个路由 /:id 和另一个 /:category_name。在测试这些路由时,您可能知道您打算访问哪一个,但服务器不知道。
考虑向路径添加另一个级别,例如 /name/:category_name 和 /id/:id。
推荐阅读
- java - JAVA MIDI 按顺序消除静音
- alert - Tradingview Pine Script 警报基于蜡烛颜色来自
- python - 路易吉中央调度程序未启动
- html - 防止在基于 Flask 的 Web 应用程序中缓存 iframe
- heroku - CNAME 配置不适用于 Heroku 应用
- c# - 我的 raycastHit2D 对象在 Unity2D 中的鼠标位置为空
- react-native - 如何在不使用作为道具接收的 onPress 的情况下调用某些函数
- html - 网页背景图片
- django - 在 Django 中调试 GraphQL / 石墨烯数据库查询
- python - 函数接受名为员工的字典(见下文),返回 3 个列表