我知道这听起来很蠢,但我真的想知道我在这里错过了什么?
错误:--它没有成功地检查Mongodb的id等式,而是抛出NotAuthorizedError。
代码:
router.post('/:id', currentUser, authenticate, async (
req: Request, res: Response
) => {
const id = req.params.id
const project = await Project.findById(id)
if (!project) throw new NotFoundError()
console.log(`CURRENT USER "${req.currentUser!.id}" AND PROJECT OWNER "${project.user}"`)
// OUTPUT :
//CURRENT USER "5f499321ecae75127075ebae" AND PROJECT OWNER "5f499321ecae75127075ebae"
if (project.user !== req.currentUser!.id) throw new NotAuthorizedError()
await project.remove()
res.status(201).send({})
})它应该是相等的,因为它也清楚地登录在控制台中。
发布于 2020-08-29 16:33:52
我的猜测是,您将字符串与实现自定义toString的包装器进行比较,从而根据引用测试字符串。你试过和project.user.toString()比较吗?
https://stackoverflow.com/questions/63648781
复制相似问题