Javascript js:找到用户,然后检查用户的值

Javascript js:找到用户,然后检查用户的值,javascript,node.js,express,mongoose,Javascript,Node.js,Express,Mongoose,我试图检查用户是否是管理员,但无法检索该值。当我记录console.log(user)时,我会得到所有这些值: email: 'testone@hotmail.com', password:'$2b$10$mMyZkF3y8wxFTXUNgd/giuDvbaXfTFxlYECQmHgvAHDd4NB5CNpsq', role: 'admin' 现在,如何检查用户角色是否为===to'admin'? 我试过做user.role,req.userData.role===“admin”,但我似乎找不

我试图检查用户是否是管理员,但无法检索该值。当我记录console.log(user)时,我会得到所有这些值:

email: 'testone@hotmail.com',
password:'$2b$10$mMyZkF3y8wxFTXUNgd/giuDvbaXfTFxlYECQmHgvAHDd4NB5CNpsq',
role: 'admin'
现在,如何检查用户角色是否为===to'admin'? 我试过做
user.role
req.userData.role===“admin”
,但我似乎找不到它,因为它告诉我未定义

router.delete("/:id",
  authCheck,
  (req, res, next) => {
    User.find()
      .then(user => {
        console.log('*this log gives me undefined*', user.role);
        if (!req.userData.role === 'admin') {
          Post.deleteOne({
            _id: req.params.id,
            poster: req.userData.userId,
          }).then(result => {
            if (result.n > 0) {
              res.status(200).json({
                message: "Deletion successful!"
              });
            } else {
              res.status(401).json({
                message: "Not authorised!"
              });
            }
          })
        }
      })
  });
我知道你们大多数人都会觉得这个超级简单,但我只是一个新的后端,所以我选择张贴这作为我最后的希望,在修复它,非常感谢

我认为
User.find()
提供的是一个文档数组,而不是文档的对象

请尝试
用户[0]。角色


!req.userData.role===“admin”
也是一个问题。
它应该是
req.userData.role!='管理员“
!(req.userData.role==“admin”)

此外,您的应用程序似乎已经从数据库加载用户并将其附加到
req
passport.js
或者其他什么东西一定在这么做。如果是这种情况,您实际上不需要再次执行
User.find()
,因为身份验证机制已经完成了这项工作。这与请求者有关,如果您正在加载其他用户的其他内容,请忽略此命令


另外,如果您只需要一条与查询匹配的记录,请尝试使用
findOne
而不是
find

是@Sashi提到的,当I
console.log(user)时我得到了我想要的所有记录,但是我如何从中获取一些信息呢?我想检查用户的角色是否是管理员。@DavidJawHpan在那里也未定义,这就是为什么我问如何进行检查。很好,这很好,但我需要比较当前用户的角色。你知道我如何解决这个问题吗?我不确定我是否了解你的整个场景。是否要检查发出删除请求的用户的角色?是,如果角色为=to admin,则将允许该角色。目前,我的工作是,只有发表文章的人才能删除文章,如代码的
post.deleteOne
部分所示,但现在我将其包装在一个if语句中,如本文所示。现在我只需要将发出请求的用户的Id与管理员的Id进行比较。
!req.userData.role=='admin'
应该是
req.userData.role!='admin'
如果您在
req.userData
req.user
中获取请求者的用户对象,请参见。很可能你已经明白了。然后您可以直接使用它,而不是加载用户
User.find()
将为您提供所有用户的列表。