Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在NodeJS中使用多部分/表单数据进行POST_Node.js - Fatal编程技术网

Node.js 在NodeJS中使用多部分/表单数据进行POST

Node.js 在NodeJS中使用多部分/表单数据进行POST,node.js,Node.js,我需要从我的NodeJS服务向Cisco Webex room发布一个本地映像。对于本地文件,您需要执行多部分/表单数据请求,而不是中提到的JSON 卷发看起来像 curl --request POST \ --header "Authorization: Bearer ACCESS_TOKEN" \ --form "files=@/home/desktop/example.png;type=image/png" \ --form "roomId=Y2lzY2....." \ -

我需要从我的NodeJS服务向Cisco Webex room发布一个本地映像。对于本地文件,您需要执行
多部分/表单数据
请求,而不是中提到的JSON

卷发看起来像

curl --request POST \
  --header "Authorization: Bearer ACCESS_TOKEN" \
  --form "files=@/home/desktop/example.png;type=image/png" \
  --form "roomId=Y2lzY2....." \
  --form "text=example attached" \
  https://api.ciscospark.com/v1/messages
但我不知道如何将其转换为nodeJS请求格式。我尝试使用CURL-to-Node请求转换器,但它似乎无法处理
multipart/formdata
类型。请建议

编辑:在做了一些研究之后,我想出了下面的代码

var request = require('request');
var fs = require('fs');

var params = { roomId: ROOMID,
    text: "hello....",
    files: {
       value: fs.createReadStream(PATH_WO_FILENAME),
       options: {
         filename: 'image.jpg',
         contentType: 'jpg'
       }
     }
   };
   var headersWebex = {
        'Authorization': 'Bearer MY_BOT_ACCESS_TOKEN',
       'Content-Type': 'multipart/form-data' }



request.post({
         headers: headersWebex,
         url:     'https://api.ciscospark.com/v1/messages',
         method: 'POST',
         body:  params
       }, function(error, response, body){
         console.log(body);
       });
但这是一个错误

undefined
_http_outgoing.js:642
    throw new TypeError('First argument must be a string or Buffer');

好的,这就是我是如何做到的。我基本上需要深入研究@Evan提到的问题

var request = require('request');
var fs = require('fs');

var roomID = 'MY_ROOM_ID'
var params = {
  roomId: roomID,
  text: "hello....",
  files: {
    value: fs.createReadStream('./image.jpg'),
      options: {
      filename: 'image.jpg',
      contentType: 'image/jpg'
      }
    }
};

var headersWebex = {
  'Authorization': 'Bearer MY_BOT_ACCESS_TOKEN',
  'Content-Type': 'application/json'
}

request.post({
  headers: headersWebex,
  url: 'https://api.ciscospark.com/v1/messages',
  method: 'POST',
  formData: params
  }, function(error, response, body){
    if (error)
      console.log(error)

    console.log(body);
  });

你的代码看起来像什么?Express有一个主体解析器模块,可以为您解决这个问题,但谁知道您是否使用了服务器端。@Brad添加了代码您在请求文档中看到过这一部分吗?它似乎涵盖了这一点-