Node.js 带有请求承诺和多部分/表单数据的请求

Node.js 带有请求承诺和多部分/表单数据的请求,node.js,request-promise,http-request-parameters,Node.js,Request Promise,Http Request Parameters,我必须实施以下工作流程: 发出请求1,获得JSON响应。操纵此JSON对象,以便在第二个请求中将其用作有效负载。提出第二个请求 第一个请求已成功实现。我得到了正确的JSON对象。操作部分也做了测试 我设法为第二个请求创建了一个正确的邮递员集合。它使用POST方法,有多个头,内容类型是multipart/form data,来自请求1的负载作为Raw发送(在正文中,选项none、form data等…我选择Raw) 我正在尝试实现第二个请求,但无论我尝试调整什么,都会得到一个错误。以下是我的代码:

我必须实施以下工作流程:

发出请求1,获得JSON响应。操纵此JSON对象,以便在第二个请求中将其用作有效负载。提出第二个请求

第一个请求已成功实现。我得到了正确的JSON对象。操作部分也做了测试

我设法为第二个请求创建了一个正确的邮递员集合。它使用POST方法,有多个头,内容类型是multipart/form data,来自请求1的负载作为Raw发送(在正文中,选项none、form data等…我选择Raw)

我正在尝试实现第二个请求,但无论我尝试调整什么,都会得到一个错误。以下是我的代码:

const manipulatedObject = await this._flattenPayload(payload);
const Request = require(request-promise);

const options = {
  method: 'POST',
  uri: 'https://second_request_url',
  formData: {
    file: {
      value: manipulatedObject,
    },
  },
  headers: {
    Accept: 'application/json, text/plain, */*',
    Connection: 'keep-alive',
    'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryxxxxxxxxxxxxxxxx', // this is generated dynamically and matches the value in the manipulatedObject
    cookie: this.cachedCookie,
    'X-XSRF-TOKEN': this.cachedToken,
  },
};

Request(options)
  .then((body) => {
    return body;
  })
  .catch((error) => {
    return error;
  });
*参数有效负载是来自第一个请求的响应

我得到的错误是:

message=source.on不是函数,stack=TypeError:source.on不是 函数

变量manufactedObject是一个字符串。目前,我正在从成功的邮递员请求中复制它的值,以避免操作过程中出现错误。内容类型标头中的随机标记与操纵对象字符串中的标记匹配。因此,数据与我在邮递员请求中使用的数据相同


我怀疑错误在我发送数据的方式上,但我很难找出它。我已经读过有关此错误的内容,它似乎是在将对象传递给formData时生成的,但我正在发送一个字符串,因此我不明白为什么会发生此错误。

formData的值只接受三种类型的元素,即。字符串、缓冲区和流。参考:

您可以按如下方式更改表单数据:

 formData: {
     file: manipulatedObject,
   },

 formData: {
     file: {
        value: manipulatedObject,
        options: {},
      },
   },