首页 > 解决方案 > 为什么 ReactRouter 的 Route 路径 ":params" 在 express 中读为 "styles.css"?

问题描述

我在前端使用 Reactrouter,在后端使用 Express。当我使用自定义参数进行路由时,我使用它来获取组件的 findbyID,我发现
通过我在 express 端的错误日志将自定义参数读取为 styles.css。

反应轮机端:

<Route path="/id/:id" component={Something} />

关于快递:

app.get("/id/:id", (req, res) => {
  const id = req.params.id;
  database.findById(id, (e, found) => {
    console.log(id);
    if (!e) {
      console.log(found);
    } else {
      console.log(e);
      console.log("consult stack overflow");
    }
  });
});

错误信息:

MongooseError [CastError]: Cast to ObjectId failed for value "styles.css" at path "_id" for model "database"

为什么会这样,我该如何解决?

标签: mongodbexpressmongoosereact-router

解决方案


事实证明,我的 index html 页面中有一个指向 styles.css 的链接。我一删除,一切都按应有的方式工作。因此,如果有人在稍后遇到这个完全相同的问题,希望这对您有所帮助。检查您的 index.html 文件是否有任何匹配的名称。


推荐阅读