我已经使用filepond在react上上传文件了:
<FilePond files={this.state.files} allowMultiple={true} server="http://localhost:5000/api/upload" onupdatefiles={(fileItems) => { this.setState({ files: fileItems.map(fileItem => fileItem.file) }); this.handleFileMetadata(); }} />
现在处理快递中的文件上传
router.post('/upload', (req, res) => {
// logic to store file on mongodb
})
要删除已上传的临时文件,filepond将DELETE请求发送到上述服务器
所以我用
router.delete('/upload', (req, res) => {
})
但是我无法从mongodb中删除文件,如何删除没有任何属性的文件?
答案 0 :(得分:0)
要删除MongoDB中的文件记录,您需要声明需要删除的文件记录。无论如何,MongoDB不会自动知道您的意图。
有几种方法可以声明文件记录:
POST /upload
路由器中,将插入的文件记录ID返回到前端(例如5b88a6b213d0613d198d7ecf
)。然后,在以下DELETE /upload/:recordId
请求中,前端会将插入的文件记录ID传递给后端,例如DELETE /upload/5b88a6b213d0613d198d7ecf
。接下来,Node.js代码可以提取要删除的文件ID,并在MongoDB中进行相应的操作。POST /upload
路由器,将latestFileId
存储在会话中,并在下一个latestFileId
请求中检索DELETE /upload
会话值。POST /upload
路由器中,使用latestFileId
将Set-Cookie
发送到浏览器,并在下一个latestFileId
请求中检索DELETE /upload
cookie值。