Javascript 无法识别快速获取路线
我有这条路线:Javascript 无法识别快速获取路线,javascript,node.js,api,express,routes,Javascript,Node.js,Api,Express,Routes,我有这条路线: //修复程序:此死记硬背有未知错误 路由器.get('/unverified',异步(req,res)=>{ 试一试{ const unverifiedUsers=wait User.find( {is_verified:false,is_admin:false}, {姓名:1,代码:1,电子邮件:1,性别:1} ); 返回res.status(200).json(未验证的用户); }捕获(错误){ 返回res.status(400).send({error}); } });
//修复程序:此死记硬背有未知错误
路由器.get('/unverified',异步(req,res)=>{
试一试{
const unverifiedUsers=wait User.find(
{is_verified:false,is_admin:false},
{姓名:1,代码:1,电子邮件:1,性别:1}
);
返回res.status(200).json(未验证的用户);
}捕获(错误){
返回res.status(400).send({error});
}
});
我是这样用的:
app.use('/api/users',userRoute);
每次我去http://localhost:5000/api/users/unverified
我得到了这个:
{
“错误”:{
“stringValue”:“未验证”,
“种类”:“ObjectId”,
“值”:“未验证”,
“路径”:“\u id”,
“理由”:{}
}
}
这对我来说很奇怪,因为其他路径工作得很好,而这个错误并没有给我一个原因。您试图转到名为“unverified”的路径名,但您没有到它的路径 你必须这样做
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);
您的问题中的catch对象的错误,还是您的catch-all错误?如果答案中有一个,那么您的错误在
try
块内,并且您的路线没有问题。。。试着简单地做res.json({hi:“there”})
-就像我在其他问题上做的那样,你提到的工作…@balexandre我甚至试过console.log()在try/catch之外,它没有出现。我还删除了mongoose逻辑,但它仍然…我们需要确定您显示的错误是来自catch
块还是来自服务器中的其他错误机制?一些console.log()
语句放在适当的位置可以很容易地回答这个问题。将一个语句放在路线的开始处(在try
之前)。将一个语句放在wait User.find()之后
。在catch
中放置一个。告诉我们哪些日志语句被命中。仅供参考,这是基本调试/故障排除,通常应该是您在发布到此处之前所做的事情,作为您自己的故障排除的一部分。您也可以在调试器中使用断点来了解相同的信息。@Phil在try
关键字之前。Apparen当然,回调没有执行那是你的问题。你需要先定义具体的路由,比如/unverified
。我肯定这里有重复的帖子,我认为你误解了OP的代码。userRoute
是一个路由器,上面有/unverified
路由。还有,app.use('/api/users',userRoute);
然后为/api/users/unverified
创建正确的路由。