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

时间:2018-10-02 11:19:13

标签: node.js mongodb express mongoose

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

BroadcastReceiver

在JWT令牌签名后,我想将/* 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.' }); } }); }); 密钥val添加到用户对象并返回它。

但是经过反复试验,我无法做token,而我不得不做user.token =jwt.sign

这是Mongoose和MongoDB的新手,这是我可以添加到要分配给变量并使其可变的返回文档中的唯一方法吗?

1 个答案:

答案 0 :(得分:1)

尝试在用户文档上使用.toObject()以获得纯JavaScript对象,您可以在其中随意操作。

代码

let user = result[0].toObject();

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

有关参考,请参见http://mongoosejs.com/docs/api.html#document_Document-toObject