当前位置: 首页 > 知识库问答 >
问题:

无法访问expressjs路由器中的参数。请删除

尹兴生
2023-03-14

这里是我的代码片段,在这里我使用了Express router和Mongoose模型

我无法访问id parm。

js prettyprint-override">router.delete('/task/:id', function (req, res) {
    Task.remove({ did: req.parms.id }, (err) => {
        if (err) {
            res.send(err);

        }
    });


});

这是我收到的错误

TypeError:无法读取位于f:\ns\routes\tasks.js:11:33的未定义属性“id”。handle[as handle_request](F:\ns\node_module\express\lib\router\layer.js:95:5)位于next(F:\ns\node_module\express\lib\router\layer.js:131:13)位于route.dispatch(F:\ns\node_module\express\lib\router\route.js:112:3)位于layer.handle[as handle_request]ss\lib\router\index.js:312:13)在f:\ns\node_module\express\lib\router\index.js:280:7在function.process_params(F:\ns\node_module\express\lib\router\index.js:330:12)在next(F:\ns\node_module\express\lib\router\index.js:271:10)在f:\ns\node_module\express\lib\router\index.js:291:5在layer.handle[作为

共有1个答案

麻学博
2023-03-14

访问路由参数时,对象不是parms而是其params。因为parms总是undefined,所以您会出现这个问题,因为您试图访问undefined的属性,而您不能这样做。

router.delete('/task/:id', (req, res) => {
    Task.remove({ did: req.params.id }, (err) => {
        if (err) 
            return res.send(err);
    });
});
 类似资料:
  • 使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re

  • 我有一个小难题来解决这个问题。 我有一个用户和一个管理员角色。 用户应该能够列出除管理员以外的所有用户。管理员可以列出所有用户。 我想到的第一个解决方案是检查控制器级别的角色: 但是我更想做的是在路线层面上,保持控制器更干净,但不知何故它确实起作用了。它只列出用户,即使我作为管理员登录。 有什么建议吗?谢谢!

  • 我是React Router的新手,我正试图通过一条路径将一些道具从我的父组件传递给子组件。 这是我的代码: 理想情况下,我希望能够从子组件触发。在做了一些研究后,我认为传递一个选项而不是会传递它,但是它不会。知道如何将函数传递到路由组件中吗?

  • 问题内容: 因此,请考虑我的angularUI路由设置中的以下片段。我导航到路线/ category / manage / 4 / details(例如)。我希望可以在相关的控制器加载之前解决“类别”问题,实际上是可以在我可以从类别服务返回类别的resolve函数中放置一个断点,并查看类别是否已返回的事实。现在在控制器本身内部放置另一个断点,我可以看到“类别”始终是未定义的。它不是由UI路由器注入

  • 问题内容: 我正在为struts2拦截器创建一个示例。我创建了一个简单的登录页面,并使用了自定义拦截器类对输入进行加密。但是拦截器正在从as 读取输入的值。 我不明白我在做什么错。我想拦截器类已经足够了。如果您需要更多我的代码,请告诉。 struts.xml 拦截器.java文件 是我定义的一个单独的类,它自己可以正常工作。 问题答案: 如果您要访问参数,则拦截器应排在第一位 您的问题是这些参数不

  • 我需要以两种方式路由到某个组件——一种是带参数的,另一种是不带参数的。我已经搜索了可选参数,但不知何故找不到太多信息。 所以我的路线: 当我以编程方式调用参数时,一切都很好 但是我也需要通过导航这样称呼它 组件接受道具 以及用作此类的组件 现在,我设法让它工作的丑陋方式是复制路线,让其中一个不带道具: 它实际上是有效的,但我对它不满意-也在开发模式下vuejs警告我 当然有一种方法可以在组件调用中