Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么req.params.id未定义?_Node.js_Sequelize.js - Fatal编程技术网

Node.js 为什么req.params.id未定义?

Node.js 为什么req.params.id未定义?,node.js,sequelize.js,Node.js,Sequelize.js,我想知道为什么在我尝试使用它时req.params.id没有定义;以下是一条需要它的路线: router.get("/:id", async (req, res) => { const screening = await Screenings.findByPk(req.params.id); res.json(screening); }); 我通过单击按钮访问它,该按钮根据我选择的元素转发它: {projectionsList.map((value, key) =&g

我想知道为什么在我尝试使用它时req.params.id没有定义;以下是一条需要它的路线:

router.get("/:id", async (req, res) => {
const screening = await Screenings.findByPk(req.params.id);
res.json(screening);
});
我通过单击按钮访问它,该按钮根据我选择的元素转发它:

{projectionsList.map((value, key) => {
                    return (
                            ...
                           <button type="button" onClick={() => history.push(`/makereservation/${value.id}`)}> Rezervisi mesto</button>
                            ...
                        </div>
                    );
                })}
下面是获取所有筛选的查询:

const screenings = await sequelize.query("SELECT `screenings`.`id`, `starts_at_time`, `starts_at_date`, `title`, `name`, `image`, `price` FROM `screenings`, `movies`, `halls` WHERE `HallId` = `halls`.`id` AND `MovieId` = `movies`.`id`", { type: QueryTypes.SELECT });
路由在index.js中定义:

const screeningRouter = require('./routes/Screenings');
app.use("/screenings", screeningRouter);

有人能帮忙吗?谢谢。

您是否在get请求中传递Id?是的,正如您在问题中看到的那样,有“/:Id”。如果我在我的环境中运行相同的代码,并且
http://localhost:3000/1111
它将
1111
作为路由处理程序中的id提供给我。您可以添加路由文件或app.js文件吗?我认为您的路由配置不正确。你给我们看的代码是正确的。我编辑了这个问题,你可以看到路线是在哪里定义的。顺便说一句,当我在rest客户机中使用id(例如“”)时,它起作用了,我从数据库中获得了所需的对象。
const screeningRouter = require('./routes/Screenings');
app.use("/screenings", screeningRouter);