首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >猫鼬查找-使用返回的数据并将其添加到变量中。

猫鼬查找-使用返回的数据并将其添加到变量中。
EN

Stack Overflow用户
提问于 2018-10-02 11:19:12
回答 1查看 57关注 0票数 2

使用Express和Mongoose,我有下面的代码来查找用户,检查用户名,然后匹配密码。

代码语言:javascript
运行
复制
/* POST signin with user credentials. */
router.post('/signin', async (req, res, next) => {
  let result = await User.find({
    email: req.body.email
  });

  let user = result[0];
  bcrypt.compare(req.body.password, result[0].password, (err, result) => {
    if (result) {
      user._doc.token = jwt.sign({
        email: req.body.email
      }, config.secret, {
        expiresIn: 86400,
      });
      res.send(user);
    } else {
      res.status(401).send({
        message: 'Password does not match.'
      });
    }
  });
});

当JWT令牌被签名时,我希望将token键val添加到user对象并返回它。

但是经过大量的尝试和错误之后,我无法做user.token =jwt.sign,我不得不做user._doc.token = jwt.sign

对于Mongoose和MongoDB来说,这是我唯一可以添加到返回的文档中的方法,我想将它赋值给变量并使其可变吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-02 12:25:55

尝试在用户文档上使用.toObject()获取一个普通的javascript对象,您可以在其中任意操作。

密码

代码语言:javascript
运行
复制
let user = result[0].toObject();

应该返回普通用户对象,然后您可以创建user.token = jwt.sign

有关参考,请参见Document-toObject

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52607309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档