使用 dropbox javascript sdk 方法 filesUpload() 时出现错误:“RequestInit:发送正文时需要双工选项”

问题描述 投票:0回答:1

我正在尝试在 React 中的歌曲创作应用程序上实现 dropbox api。

我能够将用户发送到验证并获取身份验证令牌,甚至将用户重定向回正确的页面,但我无法将链接保存在数据库中,或完成将文件上传到保管箱。

我已将问题范围缩小到服务器中的这段代码:

const dropboxResponse = await dbx.filesUpload({
    path: `/uploads/songs/${uploadedSong.originalname}`,
    contents: songFileStream
  });

这是我提交新歌曲上传时收到的完整错误代码:

Error submitting new song in Database TypeError: RequestInit: duplex option is required when sending a body.
    at Object.fetch (node:internal/deps/undici/undici:11457:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async file:///Users/leedyer/Desktop/Coding/WABS/Server/server.js:232:27

这是 github 链接:

https://github.com/leerobertdyer/wabs

我尝试在内容下的filesUpload中添加“duplex: true”,但没有成功。

这里是 javascript SDK 中 filesUpload 的链接(代码行 1308): https://www.dropbox.com/developers/documentation/http/documentation#files-upload

谢谢!如果我找到解决方案,将更新...

reactjs node.js express dropbox-api
1个回答
0
投票

发生错误是因为我的客户端代码试图使用尚未通过的令牌。我需要包含异步语言...

这涉及:

  • 确保我的 /auth 路由和 /auth-callback 路由中的 REDIRECT_URI 相同
  • 在我的服务器中存储令牌的临时版本,
  • 使用包含临时令牌的查询参数重定向回主页。
  • 确保在重定向后删除临时令牌...
  • 然后我使用超时函数和 urlSearchParams 来检查令牌。

我明白为什么现在花了几天时间才弄清楚哈哈...

如果有人偶然发现这个问题并需要澄清,我很乐意尝试与您一起解决它并获得更多经验。

© www.soinside.com 2019 - 2024. All rights reserved.