【发布时间】:2020-08-30 00:33:52
【问题描述】:
我知道这听起来很愚蠢,但我真的想知道我在这里缺少什么?
错误:没有成功检查 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({})
})
应该和控制台中明确记录的一样
【问题讨论】:
-
我的猜测是您正在将字符串与实现自定义 toString 的包装器进行比较,因此针对引用测试字符串。您是否尝试与
project.user.toString()进行比较? -
就是这样。谢谢,我过去从未真正遇到过这个问题。我想知道我做了什么不同。
-
@36ve 将此作为 OP 可以接受的答案发布:)
-
谢谢@eol :)
标签: node.js mongodb typescript express mongoose