【问题标题】:Express GET route is not recognized [duplicate]Express GET 路由无法识别[重复]
【发布时间】:2021-05-01 20:57:35
【问题描述】:

我有这条路线:

// FIXME: This rotes has a unknown bug
router.get('/unverified', async (req, res) => {
  try {
    const unverifiedUsers = await User.find(
      { is_verified: false, is_admin: false },
      { name: 1, code: 1, email: 1, gender: 1 }
    );
    return res.status(200).json(unverifiedUsers);
  } catch (error) {
    return res.status(400).send({ error });
  }
});

我是这样使用它的:

app.use('/api/users', userRoute);

每次我去http://localhost:5000/api/users/unverified我都会得到这个:

{
    "error": {
        "stringValue": "\"unverified\"",
        "kind": "ObjectId",
        "value": "unverified",
        "path": "_id",
        "reason": {}
    }
}

这对我来说很奇怪,因为其他路线完美无缺,而那个错误并没有给我一个理由。

【问题讨论】:

  • 您的问题中的 catch 对象中的错误,还是您遇到的所有错误?如果答案中的那个,那么您的错误在try 块内,并且您的路线没有任何问题...尝试简单地做res.json({hi:"there”}) - here is a repo 我为其他问题所做的事情,您所提到的工作...
  • @balexandre 我什至尝试在 try/catch 之外使用 console.log(),但它没有出现。我还删除了猫鼬逻辑,它仍然......
  • 我们需要确定您显示的错误是来自您的catch 块还是来自服务器中的其他错误机制?适当位置的一些console.log() 语句将很容易回答这个问题。在您的路线开始处放置一个(在try 之前)。在await User.find() 之后放置一个。在catch 中添加一个。告诉我们哪些日志语句被命中。仅供参考,这是基本的调试/故障排除,通常应该是您在此处发布之前做的事情,作为您自己的故障排除的一部分。您还可以在调试器中使用断点来了解相同的信息。
  • @Phil try 关键字之前。显然,回调没有执行
  • 那是你的问题。您需要先定义特定的路由,例如/unverified。我确定这里某处有重复的帖子

标签: javascript node.js api express routes


【解决方案1】:

您尝试转到名为“未验证”的路径名,但您没有通往该路径的路径

你必须这样做

router.get('/api/users/unverified', async (req, res) => {
try {
const unverifiedUsers = await User.find(
  { is_verified: false, is_admin: false },
  { name: 1, code: 1, email: 1, gender: 1 }
);
 return res.status(200).json(unverifiedUsers);
} catch (error) {
return res.status(400).send({ error });
}
});

你还需要有一个具有相同路径名的路由

app.use('/api/users/unverified', userRoute);

【讨论】:

  • 我认为你误解了 OP 的代码。 userRoute 是一个带有/unverified 路由的路由器。然后,app.use('/api/users', userRoute);/api/users/unverified 制定了一条正确的路线。
猜你喜欢
  • 2014-06-08
  • 2019-03-18
  • 2012-07-15
  • 2018-05-13
  • 2013-12-12
  • 1970-01-01
  • 2018-09-24
  • 2019-11-16
  • 2015-02-09
相关资源
最近更新 更多