Javascript 请求节点中的数据二进制

Javascript 请求节点中的数据二进制,javascript,node.js,dropbox,Javascript,Node.js,Dropbox,我正试图通过nodeJS上传一个文件到dropbox。 这个CURL请求有效 curl -X POST https://content.dropboxapi.com/2/files/upload \ --header "Authorization: Bearer myToken" \ --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"add\",\"autorename\": tru

我正试图通过nodeJS上传一个文件到dropbox。 这个CURL请求有效

curl -X POST https://content.dropboxapi.com/2/files/upload \
--header "Authorization: Bearer myToken" \
--header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}" \
--header "Content-Type: application/octet-stream" \
--data-binary @fileName
我不知道如何把它翻译成javascript代码。 以下是我迄今为止所取得的成就:

    var request = require('request')
    var headers = {
        "Authorization": "Bearer " + dropboxToken,
        "Dropbox-API-Arg": {
                            "path": "/"+fileName, //nome sul drive
                            "mode": "add",
                            "autorename": true,
                            "mute": false
                            },
        "Content-Type": "application/octet-stream"
    }
    var options = {
        url: 'https://content.dropboxapi.com/2/files/upload',
        method: 'POST',
        headers: headers,
    }
    request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
        }
    });
如何在此请求中包含
数据二进制
选项
以选择要上载的文件


谢谢。

您可以创建一个readstream,然后使用当前的头文件和选项(如-

fs.createReadStream('/path/to/youfile').pipe(request.post(options).on('end', (done) => { console.log('success') }));

首先,如果您试图在JavaScript中与Dropbox API集成,我们建议使用官方Dropbox API v2 JavaScript SDK,因为它将为您完成大部分工作:

否则,如果您不想使用SDK,您可以自己发出请求。在这种情况下,
--data binary
参数是
curl
参数,用于向
curl
请求提供数据
curl
然后获取该数据并将其放入请求体中,这是为提供文件数据的正确方法,例如


因此,您应该查看正在使用的HTTP客户机的文档,以获取有关如何设置请求主体的信息。看起来您正在使用,这似乎是。

我尝试像这样插入正文
var options={url:'https://content.dropboxapi.com/2/files/upload,headers:headers,body:'@'+'/myFile.txt'}
但它不起作用。
@
语法只是将本地文件指定为
curl
。这可能不适用于节点请求模块。从中,您应该以“
Buffer
String
ReadStream
”的形式提供数据。