gpt4 book ai didi

javascript - 在 JSON 中创建一个新字段

转载 作者:行者123 更新时间:2023-12-03 03:42:28 25 4
gpt4 key购买 nike

我正在使用 Express (Node.js) 和 Mongoose 组合来制作 REST API。我正在尝试使用 JWT token 进行登录,但遇到了问题。当我执行以下代码时

const mongoose = require('mongoose');
const User = mongoose.model('User');

// other code

_api.post('/login', function (req, res) {
const data = req.body;
// some data control

User.findOne({ username: data.username}, function(err, doc) {
if (hash(password) == doc.password) { // password check
myToken = generateToken(); // generating the token
doc.jwtToken = myToken; // including the generated token to the response

res.status(200).json(doc); // return the final JSON to client
}
}
}

API 返回的最终 JSON 没有字段“jwtToken”:“my generatedtoken”,这很奇怪。有时我会使用相同的语法在 JSON 中包含新字段,并且它有效。我尝试使用一个 tmp 变量,向其中分配了文档内容(即一个 javascript 对象),然后添加了 jwtToken 字段并返回 tmp 变量。但什么也没有。

如果我的代码有问题或者有什么我需要知道的事情,有人可以解释一下吗?

最佳答案

mongoose 返回的文档是不可变的,因此对 doc.jwtToken 的赋值不会修改对象。您可以使用 lean 方法修改查询,或使用 toObject 将文档转换为常规 JavaScript 对象。尝试:

var docObject = doc.toObject();
docObject.jwtToken = myToken;
res.status(200).json(docObject);

关于javascript - 在 JSON 中创建一个新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45560839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com