问题:物品推入对象数组
我想通过一个多上传每个上传的文件写入fileinformation到我的数据库来跟踪我上传的文件。但是,当我上传2个文件时,通常会在数据库中创建3个条目,而当我上传6个文件时,它会创建6个以上的条目。
我的数据库功能:
function saveAssetInDatabase(project, fileInformation) {
return new Promise((reject, resolve) => {
let uploaded_file = {}
uploaded_file = fileInformation
uploaded_file.file_type = 'asset'
uploaded_file.display_name = fileInformation.originalname
project.uploaded_files.push(uploaded_file)
project.save()
})
}
其调用该函数的简化代码:
for(var i=0; i<req.files["sourceStrings"].length; i++) {
// Unknown file format, let's save it as asset
saveAssetInDatabase(project, fileInformation).then(result => {
return res.status(200).send()
}).catch(err => {
logger.error(err)
return res.status(500).send()
})
}
我想这有什么错我的数据库功能,因为它会导致复制文件条目。我在这里做错了什么?一个文件应该得到一个条目。
使用'req.files.sourceStrings'的一点是什么?作为循环条件,但不在循环内部使用它?您现在总是保存相同的资产 – nem035
请确保您的req.files ['sourseStrings']没有dublicates? – Vasi
@ nem035它被使用,但这只是一个简化版本。我把它分解到相关部分。 req.files.sourceStrings用于创建'fileInformation' – kentor