【发布时间】: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