gpt4 book ai didi

javascript - 为什么我无法写入从数据库中获取的对象?

转载 作者:行者123 更新时间:2023-12-03 12:14:45 26 4
gpt4 key购买 nike

我想做的 : 我正在从 MongoDB(doc) 中获取数据。我有属性文件,它是一个对象数组。上述对象的架构:

{
fileName : {type : String, required : true},
fileSize : {type : Number, required : true},
fileOriginalName : String,
sentEarlier : Boolean,
}
在将此数组(在 doc.files 中)发送到我的前端之前,我想将一个属性(downloadLink)附加到每个对象。我遇到问题的整个代码:
Router.post('/fetch-more-files', (req, res) => {
let {uuid} = req.body;
File.findOne({uuid}, (err, doc) => {
if(err) {
return res.send({'error' : 'Something went wrong. Refresh the page.'});
}

if(!doc) {
return res.send({'error' : 'Invalid link or link expired'});
}

let newFiles = [];

doc.files.forEach(file => {
file.downloadLink = `${process.env.APP_BASE_URL}/files/download/${uuid}/${file.fileName}`;
});

doc.files.forEach(file => {
if(!file.sentEarlier) newFiles.push(file);
});

doc.save((err, savedDoc) => {
res.json({newFiles});
});
});
});
问题 :我使用所有文件(doc.files 数组中的对象)填充的 newFiles 数组,那些没有“sentEarlier”键的文件,当作为响应发送时,不是该数组具有“downloadLink”的单个对象'属性(property)给他们。我很努力地调试了很长时间,但失败了。希望能在这里找到一些关于我可能做错了什么的见解。提前致谢!!!

最佳答案

解决方案 : 在这个问题上徘徊了几个小时后,我找到了解决方案。如果您想了解为什么它不起作用的技术答案,那么这里不适合您。但如果你只是想解决你的问题,那么你终于可以去撒尿了,请继续阅读。
答案是使用 toObject() 方法,该方法显然将 mongoose 文档转换为普通的 JS 对象,现在您可以使用该对象。
mongooseJS 文档中的 toObject() :
Mongoose v5.11.9:API docs | document.prototype.toObject()
其他答案是最受欢迎的。

关于javascript - 为什么我无法写入从数据库中获取的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65520710/

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