問題:物品推入對象數組
我想通過一個多上傳每個上傳的文件寫入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